InDiO Δημοσ. 25 Ιουλίου 2003 Δημοσ. 25 Ιουλίου 2003 Ηι! Επειδή έχω καιρό αυτή την απορία, και οι γνώσεις μου στο θέμα είναι λίγες και μισές, θα ήθελα την γνώμη ανθρώπων που γνωρίζουν να μου εξηγησουν. Ποια αρχεία χρειάζονται στην διαδικασία, πόσοι τρόποι, ποιοι, αν υπάρχουν προγράμματα που αυτοματοποιούν την διαδικασία, αλλά που πηγαίνουν τα logs από κάθε επίτυχές ή όχι startup. Ως γνωστόν, μισή γνώση=καμία γνώση!
apoikos Δημοσ. 26 Ιουλίου 2003 Δημοσ. 26 Ιουλίου 2003 Βασικά ο καθορισμός των διεργασιών που τρέχουν σε κάθε κατάσταση συστήματος εξαρτάται από τη διανομή που χρησιμοποιείς. Σε γενικές γραμμές τα scripts που τρέχουν βρίσκονται στο /etc/rc.d. Ειδικότερα, έχω συναντήσει τις εξής εκδοχές: Στο RedHat και τις σε αυτό βασισμένες διανομές (π.χ. Mandrake) τα scripts που ελέγχουν τις διεργασίες αυτά καθ'αυτά βρίσκονται στον κατάλογο /etc/rc.d/init.d και η επιλογή του ποιά θα τρέχουν σε ποιό runlevel γίνεται ως εξής:Υπάρχουν κατάλογοι /etc/rc.d/rcX.d, όπου Χ ο αύξων αριθμός του runlevel. Μέσα στους καταλόγους αυτούς δημιουργούνται symlinks της μορφής Sxxyyy και Kxxyyy που δείχνουν στα αντίστοιχα scripts /etc/rc.d/init.d/yyyy. Links της μορφής Sxxyyy σημαίνουν ότι το script yyyy θα τρέξει με το όρισμα start (δηλαδή η αντίστοιχη διεργασία θα ενεργοποιηθεί) όταν το σύστημα μπει στο συγκεκριμένο runlevel. Το xx δηλώνει τη σειρά εκκίνησης των scripts (ξεκινούν πρώτα τα scripts με το χαμηλότερο αριθμό). Αντίστοιχα τα links Κxxyyy ορίζουν τί σταματάει και με ποιά σειρά μπαίνοντας στο αντίστοιχο runlevel (ή βγαίνοντας από αυτό - δεν είμαι σίγουρος...) Το Slackware χρησιμποιεί μια διαφορετική, πιο «χύμα» προσέγγιση. Έχει scripts της μορφής /etc/rc.d/rc.x στα οποία γράφονται απευθείας οι εντολές προς εκτέλεση κατά την είσοδο στο runlevel και διάφορα βοηθητικά scripts που καλλούνται από τα πρώτα. Τώρα, αν θες προγράμματα για τη διαχείριση των runlevels (δεν δουλεύουν σε Slackware), υπάρχουν (τουλάχιστον) το KSysV (ενσωματωμένο στο KDE), το tkSysv (Tcl/Tk based) και το ntSysV (console - ncurses based), τα οποία εντοπίζουν τα services για τα οποία υπάρχουν scripts στο /etc/rc.d/init.d και σε αφήνουν να διαλέξεις τί ξεκινάει που και πότε. Γενικά τα προγράμματα αυτού του τύπου λέγονται SysV Editors. Τα logs τέλος πηγαίνουν εκεί που τα ρυθμίζεις να πάνε To καλύτερο που έχεις να κάνεις είναι να ανοίξεις ένα script, να δεις πώς είναι και να το τροποποιήσεις. Αυτή είναι η δύναμη του Linux.
InDiO Δημοσ. 26 Ιουλίου 2003 Μέλος Δημοσ. 26 Ιουλίου 2003 Καλά τα λες φίλε μου , σ 'ευχαριστώ. Η απορία μου είναι η εξής: Συνήθως τα scripts είναι κάτι τερατώδη κείμενα. Αν εγώ θέλω να προσθέσω ftp server στο runlevel 3, τι script θα προσθέσω;; Ένα symlink στο /etc/rc.d/rc3.d με όνομα S99999 που να δείχνει στο /etc/rc.d/init.d/99999; Και μέσα το script τι θα γράφει; "vsftpd";;) Και αν θέλω να σταματήσω κάποιο proccess από τα πολλά άχρηστα που τρέχουν by default, πρεπει να κάτσω να ασχολούμαι με την διαχείριση (σβήσιμο-γράψιμο) των scripts για startup-stop της διεργασίας που πρέπει να διώξω;;;;
apoikos Δημοσ. 27 Ιουλίου 2003 Δημοσ. 27 Ιουλίου 2003 Βασικά αν το script σου ονομάζεται ftpd τότε πρέπει να κάνεις ένα link με όνομα /etc/rc.d/rc3.d/S34ftpd (το 34 είναι τυχαίο). Το script αυτό καθ'αυτό πρέπει να περιέχει ενέργειες για τέσσερις περιπτώσεις: start, stop status και restart. Θα μπορούσε να περιέχει απλά το vsftpd, αλλά γενικά είναι καλό να προβλέπεις ένα lock file που θα σου επιτρέπει να ελέγχεις αν τρέχει ή όχι το process καθώς και χωριστές συναρτήσεις για την εκκίνηση και το σταμάτημα της διεργασίας. Για το πώς θα γράψεις ένα σωστό initscript συμβουλέψου τα ήδη υπάρχοντα . Αν θες να σταματήσεις κάποιο process από το να φορτώνει σε καμία περίπτωση μη σβήσεις το ίδιο το script. Απλά σβήσε το link στο script από το συγκεκριμένο runlevel. Θα σε βοηθήσουν τα προγράμματα που ανέφερα παραπάνω.
InDiO Δημοσ. 27 Ιουλίου 2003 Μέλος Δημοσ. 27 Ιουλίου 2003 Μμμμ... Με λίγα λόγια μπορεί τα πράγματα να είναι κάπως περισσότερα από αυτό που περιμένεις, αλλά με αυτόν τον τρόπο έχεις περισσότερο έλεγχο...Όπως και κάθε πράγμα στο λίνουξ!! Κατι παρεμφερές περί (x)inetd. Όταν θέλεις το proccess να μην είναι standalone αλλά να καλείται δύναμικά από τον inetdaemon, τότε εννοείται πως πρέπει να βγάλεις το λινκ της διεργασίας απο το init.d, και απλά να το προσθέσεις στο configure script του xinetd, σωστά; Έτσι μπορώ να έχω όλα τα πλεονεκτήματα και τον έλεγχο που προσφέρει ο superserver inetd. Σκέφτομαι πχ ένα Quake server μέσω Inetd, που θα τρώει resources μόνο όταν συνδέεται κάποιος!
InDiO Δημοσ. 27 Ιουλίου 2003 Μέλος Δημοσ. 27 Ιουλίου 2003 Λοιπόν κατάφερα να απενεργοποιήσω τον FTP server από το startup tou runlevel 3, και να μεταφέρω την "ευθύνη" της κλήσης του (πώς τα λέω έτσι ο π*) στον xinetd.. Θεωρείται καλή πρακτική να ορίζεις σαν όνομα του προγράμματος για κλήση από τον xinetd, στα scripts στο /etc/xinetd.d/... όχι σαν απλά το όνομα του δαίμονα, αλλά το path για το init script του με όρισμα start; Δηλαδή στο αρχείο /etc/xinetd.d/ftp στη γραμμή που λέει server να μην βάλω /usr/sbin/vsftpd αλλά /etc/init.d/vsftpd start . Μήπως "μπερδεύται" ο xinetd στο σκότωμα της διεργασίας του vsftp όταν τελειώσει με κάποιον client, λόγω του ορίσματος start; Ελπίζω να με καταλαβαίνετε
mitsoskitsos Δημοσ. 28 Ιουλίου 2003 Δημοσ. 28 Ιουλίου 2003 Για το πρώτο σου ερώτημα κοίτα και το chkconfig Στο configuration file του xinetd για το ftp θα βάλεις το /usr/sbin/vsftpd και όχι το /etc/init.d/vsftpd start γιατί δεν θα δουλέψει
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.