ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ IΙ Λύβας Χρήστος chrislibas@ssl-unipi.gr Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος
>_ ΕΚΤΕΛΕΣΗ ΕΝΤΟΛΩΝ ΣΕ ΣΥΓΚΕΚΡΙΜΕΝΗ ΩΡΑ (1/2) +- Στις 13:00 το μεσημέρι θέλουμε να τρέξει η εντολη echo «It's 1 o'clock» και το αποτελεσμα της να μπει στο αρχείο «time» που βρί σκεται στο home directory
>_ ΕΚΤΕΛΕΣΗ ΕΝΤΟΛΩΝ ΣΕ ΣΥΓΚΕΚΡΙΜΕΝΗ ΩΡΑ (2/2) +- Στις 8:00 το πρωί θέλουμε να τρέξει η εντολή say «Wake Up!!!»
>_ ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΓΑΣΙΩΝ (1/5) +- Αντι να εκτελούμε εργασίες χειροκίνητα καθημερινα, εβδομαδιαία ή μηνιαία μπορούμε να τις χρονοδρομολογήσουμε Αφορά εργασίες όπως: +- Παρακολούθηση, καταγραφή, εφεδρικά αντίγραφα, διανομή αρχείων κ.ο.κ +- Στόχος είναι ο αυτοματισμός
>_ ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΓΑΣΙΩΝ (2/5) +- O δαίμονας (deamon - service) cron* εκτελεί εργασίες σε προκαθορισμένες χρονικές στιγμές +- Εξετάζει τα αρχεία crontab για χρονοδρομολόγηση. Τα αρχεία είναι: /etc/crontab /etc/cron.d/* /var/spool/cron/* +- O cron αφυπνίζεται κάθε λεπτό και ελέγχει αν υπάρχει κάτι για να εκτελεστεί *The origin of the name cron is from the Greek word for time, χρόνος (chronos)
>_ ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΓΑΣΙΩΝ (3/5) +- Δομή εγγραφών αρχείων crontab
>_ ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΓΑΣΙΩΝ (4/5) +- crontab -l : Χρησιμοποιείται για να εμφανίζει τα περιεχόμενα. +- crontab e : Χρησιμοποιείται για επεξεργασία. +- Οι διανομές εγκαθιστούν εγγραφές crontab για αυτοματοποίηση εκτέλεση σεναρίων στις /etc/cron.monthly/ /etc/cron.weekly/ /etc/cron.daily/ /etc/cron.hourly/ +- crontab r : Διαγραφή.
>_ ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΓΑΣΙΩΝ (5/5) +- Δημιουργείστε ένα script το οποίο θα μας ειδοποιεί τι ώρα είναι φωνητικά και θα εκτελείται κάθε μια ώρα. +- Ονομάστε το time_reminder.sh και αποθηκεύστε το στο home directory.
>_ ΔΙΕΡΓΑΣΙΕΣ (1/4) +- Μια διεργασία είναι ένα πρόγραμμα (στιγμιότυπο ενός προγράμματος) που εκτελείτε και αναγνωρίζεται από ένα μοναδικό χαρακτηριστικό PID. +- Για εμφάνιση πληροφοριών για τις διεργασίες, η εντολη είναι: ps [επιλογές] +- ps : εμφανίζει τις ενεργές διεργασίες του χρήστη την παρούσα στιγμη. +- ps e: θα εμφανίσει όλες τις διεργασίες που εκτελούνται εκείνη τη στιγμη.
+- ps f: παράγει μια πλήρη λίστα >_ ΔΙΕΡΓΑΣΙΕΣ (2/4) +- UID: αριθμός ταυτότητας χρήστη +- PID: η ταυτότητα της διεργασίας +- PPID: η ταυτότητα της πατρικής διεργασίας +- C: το ποσοστο χρόνου CPU που χρησιμοποιήθηκε η διεργασία +- STIME: ώρα δημιουργίας της διεργασίας +- TTY: το τερματικο της διεργασίας +- Time: ο χρόνος CPU που χρησιμοποιήθηκε ως τώρα +- CMD: το όνομα της εντολής
>_ ΔΙΕΡΓΑΣΙΕΣ (3/4) +- ps -u root: Εμφανίζει κάθε διεργασία που τρέχει σαν root (κατευθείαν ή έμμεσα) σε τρόπο εμφάνισης χρήστη. +- pstree: εμφανίζει το δέντρο των διεργασιών.
>_ ΔΙΕΡΓΑΣΙΕΣ (4/4) +- Μια διεργασία μπορει να βρίσκετε στο προσκήνιο, στο παρασκήνιο ή σε παύση +- top: παράγει μια λίστα με περιοδικη ενημέρωση των διεργασιών που τρέχουν στο σύστημα
>_ ΕΚΤΕΛΕΣΗ ΕΝΤΟΛΩΝ ΣΤΟ ΠΑΡΑΣΚΗΝΙΟ (1/2) +- Μια διεργασία που παίρνει πολυ χρόνο, μπορούμε να την μεταφέρουμε στο παρασκή νιο. +- Για να ξεκινήσουμε μια διεργασία στο παρασκήνιο, προσθέτουμε & στο τελος της γραμμής εντολής και μπορούμε να εκτελέσουμε στο προσκήνιο άλλα προγράμματα +- sleep: εισάγει μια αναμονη, για όσα δευτερόλεπτα της δώσουμε Σύνταξη: sleep [δευτερόλεπτα] +- Εκτελείτε μέχρι να: Διανυθούν τα δευτερόλεπτα στο όρισμα Πιεστει ένα πλήκτρο Συμβει κάποιο γεγονός
>_ ΕΚΤΕΛΕΣΗ ΕΝΤΟΛΩΝ ΣΤΟ ΠΑΡΑΣΚΗΝΙΟ (2/2) +- sleep 10 &: εκτελείτε στο παρασκήνιο +- ^Ζ: βάζουμε μια διεργασία που εκτελείτε στο προσκήνιο σε αναμονη +- bg: βάζουμε μια διεργασία που βρίσκεται σε αναμονη στο παρασκήνιο Προσοχη!!!ΔΕΝ βάζουμε στο παρασκήνιο διεργασίες που χρειάζονται είσοδο απότο χρή στη, π.χ. το vi
>_ ΛΙΣΤΑ ΔΙΕΡΓΑΣΙΩΝ ΠΟΥ ΕΧΟΥΝ {ΔΙΑΚΟΠΕΙ ΕΚΤΕΛΟΥΝΤΑΙ} ΣΤΟ ΠΑΡΑΣΚΗΝΙΟ +- jobs: εμφανίζει μια λίστα με τις διεργασίες που εκτελούνται στο παρασκήνιο ή έ χουν διακοπει +- fg %αριθµός job: ξεκινάει μια διεργασία που έχει διακοπει ή βρίσκεται στο παρασκήνιο. Παραδεογμα: fg %1: ξεκινάει την διεργασία [1] που έχει διακοπει +- Εάν γράψουμε μόνο fg, θα επαναφέρει στο προσκήνιο την τελευταία διεργασία που έ χουμε διακόψει ή μεταφέρει στο παρασκήνιο
>_ ΤΕΡΜΑΤΙΣΜΟΣ Η ΑΠΟΣΤΟΛΗ ΣΗΜΑΤΟΣ ΣΕ ΜΙΑ ΔΙΕΡΓΑΣΙΑ (1/2) +- Μερικές φορές είναι απαραίτητο να τερματίσουμε μια διεργασία (π.χ σε ατέρμονα βρόγχο) +- ^C (control + c) : τερματίζουμε μια διεργασία που εκτελείται στο προσκήνιο +- kill %αριθµός job:τερματίζουμεμιαδιεργασίαπουεκτελείταιστοπαρασκήνιο +- Εντολη kill: στέλνει σήμα με κωδικο signal id στηνδιεργασία pid kill [signalid] pid οπου signalid: ο αριθμός ή το όνομα ενός σήματος
>_ ΤΕΡΜΑΤΙΣΜΟΣ Η ΑΠΟΣΤΟΛΗ ΣΗΜΑΤΟΣ ΣΕ ΜΙΑ ΔΙΕΡΓΑΣΙΑ (2/2) +- kill l: εμφανίζει μια λίστα ονομάτων σημάτων +- Η εξ ορισμου τιμη σήματος τερματισμού είναι η 15 +- Μόνο ο ιδιοκτήτης ή ο διαχειριστής root μπορει να στείλει σήμα σε μια διεργασία +- kill 9 pid: στέλνει σήμα τερματισμου στη διεργασία pid +- kill 0: τερματίζει όλες τις διεργασίες που σχετίζονται με το φλοιο (το 0 σαν pid) Παράδειγμα τερματισμου διεργασίας: +- kill -9 14926
All the best people in life seem to like Linux. Steve Wozniak