connection keep alive for Linux
- Sreak
- Venus Project Founder
- Posts: 956
- Joined: Fri Apr 02, 2004 9:56 am
- Academic status: PhD
- Location: eltrun.gr
connection keep alive for Linux
Το γνωστό πρόβλημα με τη σύνδεση της σχολής. Με τα XP είχα το connection keep alive απο το norton και έκανα τη δουλειά μου. Τώρα με το linux??? Μια λύση που δουλεύει είναι ότι έχω βάλει να κάνει έλεγχο mail κάθε 1 λεπτό. Καμιά άλλη λύση?
- HdkiLLeR
- Venus Project Founder
- Posts: 4356
- Joined: Tue Jan 27, 2004 4:41 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: New York, NY
- Contact:
Η λύση του Νεκτάριου είναι σίγουρα αποδεκτή αλλά εάν το disconnection γίνεται απο το επίπεδο 2(DLL) τότε μπορείς και χωρίς script. Πιο συγκεκριμένα:
Εάν ο server της σχολής σε αποσυνδέει κοιτάζοντας το επίπεδο 2(DLL - PPP), τότε αυτό που κάνει είναι απλά να κοιτάει το PPP εάν δέχεται frames(LCP/NCP frames) και εάν περάσει ένα χρονικό διάστημα και δεν έχει λάβει κανένα πλαίσιο(ή αριθμό πλαισίων) τότε τρώς disconnect. Σε αυτήν την περίπτωση πειράζεις το PPP σου ώστε να του στέλνει ανά τακτά χρονικά διαστήματα μερικά LCP echo request frames ώστε να διατηρεί το connection alive. Για να το κάνεις αυτό κάνεις edit το /etc/ppp/options(στο Mandrake δεν ξέρω εάν είναι σε αυτό το path) και τοποθετείς μέσα στο αρχείο την γραμμή lcp-echo-interval n. To n είναι κάθε πόσα sec θα στέλενει τα frames αυτά.
Τώρα εάν σε αποσυνδέει κοιτάζοντας στο επίπεδο 3(IP). Τότε το παραπάνω δεν θα δουλέψει μιας και θα περιμένει κάποιο ip datagram να φτάσει(περάσει) απο αυτόν. Σε αυτήν την περίπτωση κάνεις το παραπάνω(ping) το οποίο απλά στέλνει ICMP datagrams(κοινώς πακέτα επιπέδου 3 - οπότε είσαι καλυμένος).
Εάν ο server της σχολής σε αποσυνδέει κοιτάζοντας το επίπεδο 2(DLL - PPP), τότε αυτό που κάνει είναι απλά να κοιτάει το PPP εάν δέχεται frames(LCP/NCP frames) και εάν περάσει ένα χρονικό διάστημα και δεν έχει λάβει κανένα πλαίσιο(ή αριθμό πλαισίων) τότε τρώς disconnect. Σε αυτήν την περίπτωση πειράζεις το PPP σου ώστε να του στέλνει ανά τακτά χρονικά διαστήματα μερικά LCP echo request frames ώστε να διατηρεί το connection alive. Για να το κάνεις αυτό κάνεις edit το /etc/ppp/options(στο Mandrake δεν ξέρω εάν είναι σε αυτό το path) και τοποθετείς μέσα στο αρχείο την γραμμή lcp-echo-interval n. To n είναι κάθε πόσα sec θα στέλενει τα frames αυτά.
Τώρα εάν σε αποσυνδέει κοιτάζοντας στο επίπεδο 3(IP). Τότε το παραπάνω δεν θα δουλέψει μιας και θα περιμένει κάποιο ip datagram να φτάσει(περάσει) απο αυτόν. Σε αυτήν την περίπτωση κάνεις το παραπάνω(ping) το οποίο απλά στέλνει ICMP datagrams(κοινώς πακέτα επιπέδου 3 - οπότε είσαι καλυμένος).
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d-->--- s+:+ a- C++(+++) BILS++++$ P--- L++++>+++++ E--- W+++ N+ o+ K w--
O M+ V-- PS++>+++ PE- Y++ PGP++ t+ 5+ X+ R* tv b++ DI- D+ G+++ e+++>++++ h r++ y++
------END GEEK CODE BLOCK------
"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." -- Dennis Ritchie
Version: 3.12
GCS d-->--- s+:+ a- C++(+++) BILS++++$ P--- L++++>+++++ E--- W+++ N+ o+ K w--
O M+ V-- PS++>+++ PE- Y++ PGP++ t+ 5+ X+ R* tv b++ DI- D+ G+++ e+++>++++ h r++ y++
------END GEEK CODE BLOCK------
"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." -- Dennis Ritchie
- HdkiLLeR
- Venus Project Founder
- Posts: 4356
- Joined: Tue Jan 27, 2004 4:41 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: New York, NY
- Contact:
Για να αυτοματοποιήσεις την διαδικασία γράψε ένα script το οποίο να κάνει ένα ping ανά 1 min, κάντο executable και βάλτο στο /etc/ppp/ip-up.d/(πάλι δεν ξέρω εάν είναι αυτό το path στην Mandrake). Μετά απο κάθε σήκωμα του PPP θα τρέχει το script απο μόνο του οπότε δεν θα χρειάζεται να το τρέχεις με το χέρι ...Αντίστοιχα μπορείς να προσθέσεις και ένα script τερματισμού του πρώτου στο /etc/ppp/ip-down.d/ ώστε μόλις κλείνεις την σύνδεση να σταματάει(kill -9?) το πρώτο scirpt που κάνει συνέχεια ping.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d-->--- s+:+ a- C++(+++) BILS++++$ P--- L++++>+++++ E--- W+++ N+ o+ K w--
O M+ V-- PS++>+++ PE- Y++ PGP++ t+ 5+ X+ R* tv b++ DI- D+ G+++ e+++>++++ h r++ y++
------END GEEK CODE BLOCK------
"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." -- Dennis Ritchie
Version: 3.12
GCS d-->--- s+:+ a- C++(+++) BILS++++$ P--- L++++>+++++ E--- W+++ N+ o+ K w--
O M+ V-- PS++>+++ PE- Y++ PGP++ t+ 5+ X+ R* tv b++ DI- D+ G+++ e+++>++++ h r++ y++
------END GEEK CODE BLOCK------
"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." -- Dennis Ritchie
- Sreak
- Venus Project Founder
- Posts: 956
- Joined: Fri Apr 02, 2004 9:56 am
- Academic status: PhD
- Location: eltrun.gr
Οκ όλλα αλλά πως θα βρίσκω στο script το id της διεργασίας για να τη σκοτώσω?Χρειάζεται να κάνω μέσα στο script την εντολή ps, να βρω το όνομα του script και μετά να βρω το πρώτο πεδίο της ίδιας σειράς που είναι το pid της?
Υπάρχει κάποιος τρόπος να δουλεύει κατευθείαν με το όνομα??
Μέχρι στιγμής πάντως όλα δουλεύουν χαρτι
Υπάρχει κάποιος τρόπος να δουλεύει κατευθείαν με το όνομα??
Μέχρι στιγμής πάντως όλα δουλεύουν χαρτι
- HdkiLLeR
- Venus Project Founder
- Posts: 4356
- Joined: Tue Jan 27, 2004 4:41 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: New York, NY
- Contact:
Τς τς τς...
Το script's name αντικατέστησε το με το όνομα του script. Αντίστοιχα μπορείς και με /bin/bash script, awk και perl. Διαλέγεις.
Code: Select all
#!/bin/csh
set name = "script's name"
set pid = `ps aux | grep $name | cut -d" " -f8`
kill -9 $pid
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d-->--- s+:+ a- C++(+++) BILS++++$ P--- L++++>+++++ E--- W+++ N+ o+ K w--
O M+ V-- PS++>+++ PE- Y++ PGP++ t+ 5+ X+ R* tv b++ DI- D+ G+++ e+++>++++ h r++ y++
------END GEEK CODE BLOCK------
"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." -- Dennis Ritchie
Version: 3.12
GCS d-->--- s+:+ a- C++(+++) BILS++++$ P--- L++++>+++++ E--- W+++ N+ o+ K w--
O M+ V-- PS++>+++ PE- Y++ PGP++ t+ 5+ X+ R* tv b++ DI- D+ G+++ e+++>++++ h r++ y++
------END GEEK CODE BLOCK------
"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." -- Dennis Ritchie
- Sreak
- Venus Project Founder
- Posts: 956
- Joined: Fri Apr 02, 2004 9:56 am
- Academic status: PhD
- Location: eltrun.gr
Ξέρεις τι γίνεται, το script δούλευε μια χαρά αν το έτρεχα χειροκίνητα, το εβαλα στο /etc/ppp/ip-up.d και συμβαίνουν τα εξής.
Πριν μπω στο internet και τρέξω ps aux | grep connectionKeepAlive δεν έχω κάποιο αποτέλεσμα(λογικό).
Αν μπω internet και τρέξω ακριβώς το ίδιο βγάζει:
root 3753 ktl ktl με όνομα διεργασίας grep connectionKeepAlive
Στην ουσία δηλαδή δεν τρέχει το script μιας και με πετάει απο το ίντερνετ
Εντάξει δεν είναι και μέγιστο πρόβλημα μιας και δεν είναι τίποτα να το τρέχω και με το χέρι αλλά κουβέντα κάνουμε
Πριν μπω στο internet και τρέξω ps aux | grep connectionKeepAlive δεν έχω κάποιο αποτέλεσμα(λογικό).
Αν μπω internet και τρέξω ακριβώς το ίδιο βγάζει:
root 3753 ktl ktl με όνομα διεργασίας grep connectionKeepAlive
Στην ουσία δηλαδή δεν τρέχει το script μιας και με πετάει απο το ίντερνετ
Εντάξει δεν είναι και μέγιστο πρόβλημα μιας και δεν είναι τίποτα να το τρέχω και με το χέρι αλλά κουβέντα κάνουμε
- Einherjar
- Venus Project Founder
- Posts: 3751
- Joined: Tue Jan 27, 2004 4:42 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: Washington DC, USA
- Contact:
Περνώντας αρκετή ώρα για να βγάλω ένα νόημα από το post σου( ) θέλω να σε ρωτήσω:
Πριν μπεις στο inet δεν τρέχει το script με το ping, έτσι?
Αφού μπεις, τρέχει το script με το ping, αφού σου βγάζει αποτέλεσμα το έτσι?
Ποιο script δεν τρέχει, όταν είσαι συνδεδεμένος?
Πριν μπεις στο inet δεν τρέχει το script με το ping, έτσι?
Αφού μπεις, τρέχει το script με το ping, αφού σου βγάζει αποτέλεσμα το
Code: Select all
ps aux | grep $name | cut -d" " -f8
Ποιο script δεν τρέχει, όταν είσαι συνδεδεμένος?
[Better to understand a little than to misunderstand a lot]
- Sreak
- Venus Project Founder
- Posts: 956
- Joined: Fri Apr 02, 2004 9:56 am
- Academic status: PhD
- Location: eltrun.gr
Αν τα κάναμε όλα εύκολα, τί θα είχε αξία?Einherjar wrote:Περνώντας αρκετή ώρα για να βγάλω ένα νόημα από το post σου(
Λοιπόν πριν μπω στο ιντερνετ δεν έχω τρέξει κανένα script και πράγματι αυτό φαίνεται και από το αποτέλεσμα της εντόλης: ps aux | grep connectionKeepAlive
που είναι κενό.
Όταν μπω στο ίντερνετ και εκτελέσω την ίδια εντολή μου βγάζει σαν αποτέλεσμα μια διεργασία που το όνομα της είναι "grep connectionKeepAlive" προσοχή μαζί με το grep
Στην πραγματικότητα δεν λειτουργέι το script μιας και με πετάει από το ίντερνετ μετά από λίγο.
Α ξέχασα να σου πω πως αν μετα κάνω(πριν με πετάξει από το ίντερνετ) "ps aux" δεν βρίσκω κάπου την connectionKeepAlive.
Πράγματι καταλαβαίνω πως γράφω κάπως περίεργα αλλά δεν μπορώ να κάνω κάτι άλλο βρε λες να έχω πρόβλημα????
- HdkiLLeR
- Venus Project Founder
- Posts: 4356
- Joined: Tue Jan 27, 2004 4:41 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: New York, NY
- Contact:
Ναι οκ το έπιασα . Βασικά δεν τρέχει το script!. Wow και γ**ώ τις διαπιστώσεις έτσι ; Net πως μπαίνεις;
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d-->--- s+:+ a- C++(+++) BILS++++$ P--- L++++>+++++ E--- W+++ N+ o+ K w--
O M+ V-- PS++>+++ PE- Y++ PGP++ t+ 5+ X+ R* tv b++ DI- D+ G+++ e+++>++++ h r++ y++
------END GEEK CODE BLOCK------
"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." -- Dennis Ritchie
Version: 3.12
GCS d-->--- s+:+ a- C++(+++) BILS++++$ P--- L++++>+++++ E--- W+++ N+ o+ K w--
O M+ V-- PS++>+++ PE- Y++ PGP++ t+ 5+ X+ R* tv b++ DI- D+ G+++ e+++>++++ h r++ y++
------END GEEK CODE BLOCK------
"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." -- Dennis Ritchie
- vagalati
- Mbyte level
- Posts: 579
- Joined: Tue Mar 16, 2004 2:46 pm
- Location: 7000 miles away from aueb
Τώρα σχετικά με το script δεν σου τρέχει γιατί προφανώς μπαίνεις μέσα με το kppp. Το kppp βάζει δικές του παραμέτρους στο ppp και αγνοεί τις ρυθμίσεις που έχεις περάσει εσύ στο ppp. Έχει όμως ένα tab στις ρυθμίσεις που μπορείς να του πείς να εκτελέσει ένα πρόγραμμα μόλις βρεθείς online και ένα άλλο μόλις αποσυνδεθείς. Στο πρώτο βάζεις το scriptάκι σου και στο δεύτερο ένα άλλο script που έχει την εντολή 'killall -9 connectionKeepAlive'
Ni!! Ni!! Ni!!
- HdkiLLeR
- Venus Project Founder
- Posts: 4356
- Joined: Tue Jan 27, 2004 4:41 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: New York, NY
- Contact:
Slack και killall δεν πάει ρε!! Περίμενα κανένα awk filter απο σένα . To βρήκαμε όντως ότι χρησιμοποιεί το kppp... Αχ και είχα ολόκληρο post για το πως θα ρυθμήσεις το pppd.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d-->--- s+:+ a- C++(+++) BILS++++$ P--- L++++>+++++ E--- W+++ N+ o+ K w--
O M+ V-- PS++>+++ PE- Y++ PGP++ t+ 5+ X+ R* tv b++ DI- D+ G+++ e+++>++++ h r++ y++
------END GEEK CODE BLOCK------
"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." -- Dennis Ritchie
Version: 3.12
GCS d-->--- s+:+ a- C++(+++) BILS++++$ P--- L++++>+++++ E--- W+++ N+ o+ K w--
O M+ V-- PS++>+++ PE- Y++ PGP++ t+ 5+ X+ R* tv b++ DI- D+ G+++ e+++>++++ h r++ y++
------END GEEK CODE BLOCK------
"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." -- Dennis Ritchie
- HdkiLLeR
- Venus Project Founder
- Posts: 4356
- Joined: Tue Jan 27, 2004 4:41 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: New York, NY
- Contact:
Ε τώρα τα έχουν κάνει 'as simple as possible' γι' αυτό εδώ και καιρό έχω μετακομήσει στην Debian. Όταν ξεκίνησε ήταν most unix like distro.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d-->--- s+:+ a- C++(+++) BILS++++$ P--- L++++>+++++ E--- W+++ N+ o+ K w--
O M+ V-- PS++>+++ PE- Y++ PGP++ t+ 5+ X+ R* tv b++ DI- D+ G+++ e+++>++++ h r++ y++
------END GEEK CODE BLOCK------
"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." -- Dennis Ritchie
Version: 3.12
GCS d-->--- s+:+ a- C++(+++) BILS++++$ P--- L++++>+++++ E--- W+++ N+ o+ K w--
O M+ V-- PS++>+++ PE- Y++ PGP++ t+ 5+ X+ R* tv b++ DI- D+ G+++ e+++>++++ h r++ y++
------END GEEK CODE BLOCK------
"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." -- Dennis Ritchie
- HdkiLLeR
- Venus Project Founder
- Posts: 4356
- Joined: Tue Jan 27, 2004 4:41 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: New York, NY
- Contact:
όχι ρε είναι SysV based όμως και γουστάρω...(η slack ήταν bsd based) . Τηρεί μερικά standarts και τα πάντα είναι στην θέση τους(logs,pids,spool,config,libs,exec...). Για το packaging δεν το συζητάω γιατί απο την debian βγήκε τα υπόλοιπα distros είναι too minimini wanahave a package system like debian.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d-->--- s+:+ a- C++(+++) BILS++++$ P--- L++++>+++++ E--- W+++ N+ o+ K w--
O M+ V-- PS++>+++ PE- Y++ PGP++ t+ 5+ X+ R* tv b++ DI- D+ G+++ e+++>++++ h r++ y++
------END GEEK CODE BLOCK------
"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." -- Dennis Ritchie
Version: 3.12
GCS d-->--- s+:+ a- C++(+++) BILS++++$ P--- L++++>+++++ E--- W+++ N+ o+ K w--
O M+ V-- PS++>+++ PE- Y++ PGP++ t+ 5+ X+ R* tv b++ DI- D+ G+++ e+++>++++ h r++ y++
------END GEEK CODE BLOCK------
"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." -- Dennis Ritchie
- vagalati
- Mbyte level
- Posts: 579
- Joined: Tue Mar 16, 2004 2:46 pm
- Location: 7000 miles away from aueb
Και είναι ακόμα... ;-)HdkiLLeR wrote:...η slack ήταν bsd based...
Με το "as simple as possible" δεν εννοώ την ευκολία στον χρήστη. Επίσης ισχύει και στο slack ότι τα πάντα είναι στη θέση τους.
Last edited by vagalati on Thu Sep 16, 2004 11:03 pm, edited 1 time in total.
Ni!! Ni!! Ni!!
- HdkiLLeR
- Venus Project Founder
- Posts: 4356
- Joined: Tue Jan 27, 2004 4:41 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: New York, NY
- Contact:
Έλα τώρα που παραμένει bsd based...ούτε το accounting των processes δεν είναι το ίδιο. Το porting την έχει χαλάσει. Βάλε την 3.6
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d-->--- s+:+ a- C++(+++) BILS++++$ P--- L++++>+++++ E--- W+++ N+ o+ K w--
O M+ V-- PS++>+++ PE- Y++ PGP++ t+ 5+ X+ R* tv b++ DI- D+ G+++ e+++>++++ h r++ y++
------END GEEK CODE BLOCK------
"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." -- Dennis Ritchie
Version: 3.12
GCS d-->--- s+:+ a- C++(+++) BILS++++$ P--- L++++>+++++ E--- W+++ N+ o+ K w--
O M+ V-- PS++>+++ PE- Y++ PGP++ t+ 5+ X+ R* tv b++ DI- D+ G+++ e+++>++++ h r++ y++
------END GEEK CODE BLOCK------
"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." -- Dennis Ritchie
- vagalati
- Mbyte level
- Posts: 579
- Joined: Tue Mar 16, 2004 2:46 pm
- Location: 7000 miles away from aueb
Κοίτα, το slack (10) έχει το init ίδιο και το package management ίδιο. Επίσης έχει και bsd process accounting (το οποίο πρέπει να το ενεργοποιήσεις στο /etc/rc.d/rc.M). Η μεγάλη διαφορά με το *BSD είναι ότι έχει πυρήνα... Linux
Y.Γ.1. Την 3.6 την έχεις ακόμα;;;; Αλήθεια το χρησιμοπιείς καθόλου;;
Y.Γ.2. Θα το δούμε στο OpenBSD ποιός θα νοιώθει πιο... home
Y.Γ.1. Την 3.6 την έχεις ακόμα;;;; Αλήθεια το χρησιμοπιείς καθόλου;;
Y.Γ.2. Θα το δούμε στο OpenBSD ποιός θα νοιώθει πιο... home
Ni!! Ni!! Ni!!
- HdkiLLeR
- Venus Project Founder
- Posts: 4356
- Joined: Tue Jan 27, 2004 4:41 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: New York, NY
- Contact:
Ας μην σχολιάσω πόση ώρα κάναμε partition έτσι ...και τι έφταιγε τελικά .vagalati wrote: Υ.Γ.2. Θα το δούμε στο OpenBSD ποιός θα νοιώθει πιο... home
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d-->--- s+:+ a- C++(+++) BILS++++$ P--- L++++>+++++ E--- W+++ N+ o+ K w--
O M+ V-- PS++>+++ PE- Y++ PGP++ t+ 5+ X+ R* tv b++ DI- D+ G+++ e+++>++++ h r++ y++
------END GEEK CODE BLOCK------
"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." -- Dennis Ritchie
Version: 3.12
GCS d-->--- s+:+ a- C++(+++) BILS++++$ P--- L++++>+++++ E--- W+++ N+ o+ K w--
O M+ V-- PS++>+++ PE- Y++ PGP++ t+ 5+ X+ R* tv b++ DI- D+ G+++ e+++>++++ h r++ y++
------END GEEK CODE BLOCK------
"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." -- Dennis Ritchie