LFCS: Διαχείριση διαδικασίας και υπηρεσιών εκκίνησης συστήματος (SysVinit, Systemd και Upstart) - Μέρος 7


Πριν από μερικούς μήνες, το Ίδρυμα Linux ανακοίνωσε την πιστοποίηση LFCS (Linux Foundation Certified Sysadmin), ένα συναρπαστικό νέο πρόγραμμα που στόχος του είναι να επιτρέπει σε άτομα από όλα τα άκρα του κόσμου να λάβετε πιστοποίηση για την εκτέλεση βασικών έως ενδιάμεσων εργασιών διαχείρισης συστήματος σε συστήματα Linux. Αυτό περιλαμβάνει την υποστήριξη συστημάτων και υπηρεσιών που ήδη λειτουργούν, μαζί με την εύρεση και ανάλυση προβλημάτων από πρώτο χέρι, καθώς και τη δυνατότητα να αποφασίζετε πότε θα θέσετε ζητήματα στις ομάδες μηχανικών.

Το παρακάτω βίντεο περιγράφει μια σύντομη εισαγωγή στο Πρόγραμμα πιστοποίησης The Linux Foundation.

Αυτή η ανάρτηση είναι το Μέρος 7 μιας σειράς 10 εκπαιδευτικών, εδώ σε αυτό το μέρος, θα εξηγήσουμε πώς να διαχειριστείτε τη διαδικασία εκκίνησης συστήματος Linux και τις υπηρεσίες, που απαιτούνται για την εξέταση πιστοποίησης LFCS.

Διαχείριση της διαδικασίας εκκίνησης Linux

Η διαδικασία εκκίνησης ενός συστήματος Linux αποτελείται από πολλές φάσεις, καθεμία από τις οποίες αντιπροσωπεύεται από ένα διαφορετικό στοιχείο. Το παρακάτω διάγραμμα συνοψίζει συνοπτικά τη διαδικασία εκκίνησης και δείχνει όλα τα κύρια στοιχεία που εμπλέκονται.

Όταν πατάτε το κουμπί Λειτουργία στο μηχάνημά σας, το υλικολογισμικό που είναι αποθηκευμένο σε ένα τσιπ EEPROM στη μητρική πλακέτα αρχικοποιεί το POST ( Power-On Self Test) για να ελέγξετε την κατάσταση των πόρων υλικού του συστήματος. Όταν ολοκληρωθεί το POST, το υλικολογισμικό αναζητά και φορτώνει τον φορτωτή εκκίνησης 1ου σταδίου, που βρίσκεται στο MBR ή στο EFI διαμέρισμα του πρώτου διαθέσιμου δίσκου και δίνει τον έλεγχο σε αυτόν.

Μέθοδος MBR

Το MBR βρίσκεται στον πρώτο τομέα του δίσκου που έχει επισημανθεί ως εκκινήσιμος στις ρυθμίσεις BIOS και έχει μέγεθος 512 byte.

  1. Πρώτα 446 byte: Ο bootloader περιέχει και εκτελέσιμο κώδικα και κείμενο μηνύματος σφάλματος.
  2. Επόμενα 64 byte: Ο πίνακας Partition περιέχει μια εγγραφή για καθένα από τα τέσσερα διαμερίσματα (κύρια ή εκτεταμένα). Μεταξύ άλλων, κάθε εγγραφή υποδεικνύει την κατάσταση (ενεργή/μη ενεργή), το μέγεθος και τους τομείς έναρξης/λήξης κάθε διαμερίσματος.
  3. Τελευταία 2 byte: Ο μαγικός αριθμός χρησιμεύει ως έλεγχος επικύρωσης του MBR.

Η ακόλουθη εντολή εκτελεί αντίγραφο ασφαλείας του MBR (σε αυτό το παράδειγμα, το /dev/sda είναι ο πρώτος σκληρός δίσκος). Το αρχείο που προκύπτει, mbr.bkp μπορεί να είναι χρήσιμο σε περίπτωση που ο πίνακας διαμερισμάτων καταστραφεί, για παράδειγμα, καθιστώντας το σύστημα μη εκκινήσιμο.

Φυσικά, για να το χρησιμοποιήσουμε αργότερα εάν παραστεί ανάγκη, θα πρέπει να το αποθηκεύσουμε και να το αποθηκεύσουμε κάπου αλλού (όπως μια μονάδα USB, για παράδειγμα). Αυτό το αρχείο θα μας βοηθήσει να επαναφέρουμε το MBR και θα μας κάνει να ξεκινήσουμε ξανά, αν και μόνο εάν δεν αλλάξουμε τη διάταξη του σκληρού δίσκου στο μεταξύ.

Backup MBR
# dd if=/dev/sda of=mbr.bkp bs=512 count=1
Επαναφορά MBR
# dd if=mbr.bkp of=/dev/sda bs=512 count=1

Μέθοδος EFI/UEFI

Για συστήματα που χρησιμοποιούν τη μέθοδο EFI/UEFI, το υλικολογισμικό UEFI διαβάζει τις ρυθμίσεις του για να καθορίσει ποια εφαρμογή UEFI θα εκκινηθεί και από πού (δηλ. σε ποιο δίσκο και διαμέρισμα βρίσκεται το διαμέρισμα EFI).

Στη συνέχεια, φορτώνεται και εκτελείται ο φορτωτής εκκίνησης 2ου σταδίου (γνωστός και ως διαχειριστής εκκίνησης). Το GRUB [GRand Unified Boot] είναι ο πιο συχνά χρησιμοποιούμενος διαχειριστής εκκίνησης στο Linux. Μία από τις δύο διαφορετικές εκδόσεις μπορεί να βρεθεί στα περισσότερα συστήματα που χρησιμοποιούνται σήμερα.

  1. Αρχείο διαμόρφωσης παλαιού τύπου GRUB: /boot/grub/menu.lst (παλαιότερες διανομές, δεν υποστηρίζονται από υλικολογισμικά EFI/UEFI).
  2. Αρχείο διαμόρφωσης GRUB2: πιθανότατα, /etc/default/grub.

Παρόλο που οι στόχοι της εξέτασης LFCS δεν απαιτούν ρητά γνώσεις σχετικά με τα εσωτερικά στοιχεία του GRUB, εάν είστε γενναίοι και έχετε την πολυτέλεια να μπερδέψετε το σύστημά σας (μπορείτε να το δοκιμάσετε πρώτα σε μια εικονική μηχανή, για κάθε ενδεχόμενο), πρέπει να εκτελέσετε.

# update-grub

Ως root μετά την τροποποίηση της διαμόρφωσης του GRUB προκειμένου να εφαρμοστούν οι αλλαγές.

Βασικά, το GRUB φορτώνει τον προεπιλεγμένο πυρήνα και την εικόνα initrd ή initramfs. Με λίγα λόγια, το initrd ή το initramfs βοηθούν στην εκτέλεση της ανίχνευσης υλικού, της φόρτωσης της μονάδας πυρήνα και της ανακάλυψης συσκευής που είναι απαραίτητη για την τοποθέτηση του πραγματικού συστήματος αρχείων root.

Μόλις ενεργοποιηθεί το πραγματικό ριζικό σύστημα αρχείων, ο πυρήνας εκτελεί το σύστημα και τη διαχείριση υπηρεσιών (init ή systemd, του οποίου η αναγνώριση διαδικασίας ή το PID είναι πάντα 1) για να ξεκινήσει η κανονική χρήση διαδικασία εκκίνησης χώρου για να παρουσιάσετε μια διεπαφή χρήστη.

Τόσο το init όσο και το systemd είναι δαίμονες (διεργασίες παρασκηνίου) που διαχειρίζονται άλλους δαίμονες, ως την πρώτη υπηρεσία που ξεκινά (κατά την εκκίνηση) και την τελευταία υπηρεσία που τερματίζεται (κατά τον τερματισμό).

Έναρξη υπηρεσιών (SysVinit)

Η έννοια των επιπέδων εκτέλεσης στο Linux καθορίζει διαφορετικούς τρόπους χρήσης ενός συστήματος ελέγχοντας ποιες υπηρεσίες εκτελούνται. Με άλλα λόγια, ένα επίπεδο εκτέλεσης ελέγχει ποιες εργασίες μπορούν να ολοκληρωθούν στην τρέχουσα κατάσταση εκτέλεσης=επίπεδο εκτέλεσης (και ποιες όχι).

Παραδοσιακά, αυτή η διαδικασία εκκίνησης εκτελούνταν με βάση συμβάσεις που προέκυψαν από το System V UNIX, με το σύστημα να περνά εκτελώντας συλλογές σεναρίων που ξεκινούν και σταματούν υπηρεσίες καθώς το μηχάνημα εισέρχονταν σε ένα συγκεκριμένο επίπεδο εκτέλεσης (που, με άλλα λόγια , είναι ένας διαφορετικός τρόπος λειτουργίας του συστήματος).

Σε κάθε επίπεδο εκτέλεσης, μεμονωμένες υπηρεσίες μπορούν να ρυθμιστούν να εκτελούνται ή να τερματίζονται εάν εκτελούνται. Οι πιο πρόσφατες εκδόσεις ορισμένων μεγάλων διανομών απομακρύνονται από το πρότυπο System V προς όφελος μιας σχετικά νέας υπηρεσίας και διαχείρισης συστήματος που ονομάζεται systemd (που σημαίνει δαίμονας συστήματος), αλλά συνήθως υποστήριξη εντολών sysv για λόγους συμβατότητας. Αυτό σημαίνει ότι μπορείτε να εκτελέσετε τα περισσότερα από τα γνωστά εργαλεία sysv init σε μια διανομή που βασίζεται σε systemd.

Διαβάστε επίσης: Γιατί το systemd αντικαθιστά το init στο Linux

Εκτός από την έναρξη της διαδικασίας συστήματος, το init κοιτάζει στο αρχείο /etc/inittab για να αποφασίσει ποιο επίπεδο εκτέλεσης πρέπει να εισαχθεί.

Runlevel Description
0  Halt the system. Runlevel 0 is a special transitional state used to shutdown the system quickly.
1  Also aliased to s, or S, this runlevel is sometimes called maintenance mode. What services, if any, are started at this runlevel varies by distribution. It’s typically used for low-level system maintenance that may be impaired by normal system operation.
2  Multiuser. On Debian systems and derivatives, this is the default runlevel, and includes -if available- a graphical login. On Red-Hat based systems, this is multiuser mode without networking.
3  On Red-Hat based systems, this is the default multiuser mode, which runs everything except the graphical environment. This runlevel and levels 4 and 5 usually are not used on Debian-based systems.
4  Typically unused by default and therefore available for customization.
5  On Red-Hat based systems, full multiuser mode with GUI login. This runlevel is like level 3, but with a GUI login available.
6  Reboot the system.

Για εναλλαγή μεταξύ των επιπέδων εκτέλεσης, μπορούμε απλώς να εκδώσουμε μια αλλαγή επιπέδου εκτέλεσης χρησιμοποιώντας την εντολή init: init N (όπου το N είναι ένα από τα επίπεδα εκτέλεσης που αναφέρονται παραπάνω). Λάβετε υπόψη ότι αυτός δεν είναι ο συνιστώμενος τρόπος για να μεταφέρετε ένα σύστημα που εκτελείται σε διαφορετικό επίπεδο εκτέλεσης, επειδή δεν δίνει καμία προειδοποίηση στους υπάρχοντες συνδεδεμένους χρήστες (με αποτέλεσμα να χάνουν την εργασία τους και να τερματίζουν ασυνήθιστα τις διεργασίες).

Αντίθετα, η εντολή shutdown θα πρέπει να χρησιμοποιηθεί για την επανεκκίνηση του συστήματος (η οποία πρώτα στέλνει ένα προειδοποιητικό μήνυμα σε όλους τους συνδεδεμένους χρήστες και αποκλείει τυχόν περαιτέρω συνδέσεις· στη συνέχεια σηματοδοτεί την αλλαγή επιπέδων εκτέλεσης). Ωστόσο, το προεπιλεγμένο επίπεδο εκτέλεσης (αυτό στο οποίο θα εκκινήσει το σύστημα) πρέπει πρώτα να επεξεργαστεί στο αρχείο /etc/inittab.

Για αυτόν τον λόγο, ακολουθήστε αυτά τα βήματα για να κάνετε σωστή εναλλαγή μεταξύ των επιπέδων εκτέλεσης. Ως root, αναζητήστε την ακόλουθη γραμμή στο /etc/inittab.

id:2:initdefault:

και αλλάξτε τον αριθμό 2 για το επιθυμητό επίπεδο εκτέλεσης με τον επεξεργαστή κειμένου που προτιμάτε, όπως το vim (περιγράφεται στο Τρόπος χρήσης του επεξεργαστή vi/vim στο Linux – Μέρος 2 αυτής της σειράς).

Στη συνέχεια, εκτελέστε ως root.

# shutdown -r now

Αυτή η εντολή last θα επανεκκινήσει το σύστημα, αναγκάζοντας το να ξεκινήσει στο καθορισμένο επίπεδο εκτέλεσης κατά την επόμενη εκκίνηση και θα εκτελέσει τα σενάρια που βρίσκονται στο /etc/rc[runlevel].d κατάλογο για να αποφασίσετε ποιες υπηρεσίες θα πρέπει να ξεκινήσουν και ποιες όχι. Για παράδειγμα, για το επίπεδο εκτέλεσης 2 στο ακόλουθο σύστημα.

Διαχείριση Υπηρεσιών χρησιμοποιώντας το chkconfig

Για να ενεργοποιήσουμε ή να απενεργοποιήσουμε τις υπηρεσίες συστήματος κατά την εκκίνηση, θα χρησιμοποιήσουμε την εντολή chkconfig στο CentOS/openSUSE και sysv-rc-conf στο Debian και σε παράγωγα. Αυτό το εργαλείο μπορεί επίσης να μας δείξει ποια είναι η προρυθμισμένη κατάσταση μιας υπηρεσίας για ένα συγκεκριμένο επίπεδο εκτέλεσης.

Διαβάστε επίσης: Πώς να διακόψετε και να απενεργοποιήσετε τις ανεπιθύμητες υπηρεσίες στο Linux

Καταχώρηση της διαμόρφωσης επιπέδου εκτέλεσης για μια υπηρεσία.

# chkconfig --list [service name]
# chkconfig --list postfix
# chkconfig --list mysqld

Στην παραπάνω εικόνα μπορούμε να δούμε ότι το postfix έχει οριστεί να ξεκινά όταν το σύστημα εισέρχεται σε επίπεδα εκτέλεσης 2 έως 5, ενώ το mysqld θα εκτελείται από προεπιλογή για τα επίπεδα εκτέλεσης 2 έως 4. Τώρα ας υποθέσουμε ότι αυτή δεν είναι η αναμενόμενη συμπεριφορά.

Για παράδειγμα, πρέπει να ενεργοποιήσουμε το mysqld για το επίπεδο εκτέλεσης 5 επίσης, και να απενεργοποιήσουμε το postfix για τα επίπεδα εκτέλεσης 4 και 5. Εδώ είναι τι θα κάναμε σε κάθε περίπτωση (εκτελέστε το ακολουθώντας τις εντολές ως root).

# chkconfig --level [level(s)] service on
# chkconfig --level 5 mysqld on
# chkconfig --level [level(s)] service off
# chkconfig --level 45 postfix off

Τώρα θα εκτελούμε παρόμοιες εργασίες σε ένα σύστημα βασισμένο σε Debian χρησιμοποιώντας sysv-rc-conf.

Διαχείριση Υπηρεσιών χρησιμοποιώντας sysv-rc-conf

Διαμόρφωση μιας υπηρεσίας ώστε να ξεκινά αυτόματα σε ένα συγκεκριμένο επίπεδο εκτέλεσης και να αποτρέπεται η εκκίνησή της σε όλα τα άλλα.

1. Ας χρησιμοποιήσουμε την ακόλουθη εντολή για να δούμε ποια είναι τα επίπεδα εκτέλεσης όπου το mdadm έχει ρυθμιστεί για έναρξη.

# ls -l /etc/rc[0-6].d | grep -E 'rc[0-6]|mdadm'

2. Θα χρησιμοποιήσουμε το sysv-rc-conf για να αποτρέψουμε την εκκίνηση του mdadm σε όλα τα επίπεδα εκτέλεσης εκτός από το 2. Απλώς επιλέξτε ή καταργήστε την επιλογή (με το πλήκτρο διαστήματος) όπως θέλετε (μπορείτε να μετακινηθείτε πάνω, κάτω, αριστερά και δεξιά με τα πλήκτρα βέλους).

# sysv-rc-conf

Στη συνέχεια, πατήστε q για έξοδο.

3. Θα κάνουμε επανεκκίνηση του συστήματος και θα εκτελέσουμε ξανά την εντολή από το ΒΗΜΑ 1.

# ls -l /etc/rc[0-6].d | grep -E 'rc[0-6]|mdadm'

Στην παραπάνω εικόνα μπορούμε να δούμε ότι το mdadm έχει ρυθμιστεί να ξεκινά μόνο στο επίπεδο εκτέλεσης 2.

Τι γίνεται με το systemd;

Το systemd είναι άλλος ένας διαχειριστής υπηρεσιών και συστήματος που υιοθετείται από πολλές μεγάλες διανομές Linux. Στόχος του είναι να επιτραπεί η εκτέλεση περισσότερων επεξεργασιών παράλληλα κατά την εκκίνηση του συστήματος (σε αντίθεση με το sysvinit, το οποίο τείνει πάντα να είναι πιο αργό επειδή ξεκινά τις διαδικασίες μία κάθε φορά, ελέγχει εάν η μία εξαρτάται από την άλλη και περιμένει δαίμονες για εκκίνηση ώστε να μπορούν να ξεκινήσουν περισσότερες υπηρεσίες) και να χρησιμεύσει ως δυναμική διαχείριση πόρων σε ένα τρέχον σύστημα.

Έτσι, οι υπηρεσίες ξεκινούν όταν χρειάζεται (για να αποφευχθεί η κατανάλωση πόρων του συστήματος) αντί να εκκινούνται χωρίς σοβαρό λόγο κατά την εκκίνηση.

Προβάλλοντας την κατάσταση όλων των διεργασιών που εκτελούνται στο σύστημά σας, τόσο των υπηρεσιών σύστημα εγγενείς και των υπηρεσιών SysV, εκτελέστε την ακόλουθη εντολή.

# systemctl

Η στήλη LOAD δείχνει εάν ο ορισμός της μονάδας (ανατρέξτε στη στήλη UNIT, η οποία δείχνει την υπηρεσία ή οτιδήποτε διατηρείται από το systemd) φορτώθηκε σωστά, ενώ το ACTIVE< Οι στήλες και SUB δείχνουν την τρέχουσα κατάσταση μιας τέτοιας μονάδας.

Όταν η στήλη ΕΝΕΡΓΗ υποδεικνύει ότι η κατάσταση μιας μονάδας δεν είναι ενεργή, μπορούμε να ελέγξουμε τι συνέβη χρησιμοποιώντας.

# systemctl status [unit]

Για παράδειγμα, στην παραπάνω εικόνα, το media-samba.mount βρίσκεται σε κατάσταση αποτυχίας. Ας τρέξουμε.

# systemctl status media-samba.mount

Μπορούμε να δούμε ότι το media-samba.mount απέτυχε επειδή η διαδικασία προσάρτησης στον κεντρικό υπολογιστή dev1 δεν μπόρεσε να βρει το κοινόχρηστο στοιχείο δικτύου στη διεύθυνση //192.168.0.10/gacanepa.

Έναρξη ή διακοπή υπηρεσιών

Μόλις το κοινόχρηστο στοιχείο δικτύου //192.168.0.10/gacanepa γίνει διαθέσιμο, ας προσπαθήσουμε να ξεκινήσουμε, μετά να σταματήσουμε και, τέλος, να επανεκκινήσουμε τη μονάδα media-samba.mount. Μετά την εκτέλεση κάθε ενέργειας, ας εκτελέσουμε το systemctl status media-samba.mount για να ελέγξουμε την κατάστασή του.

# systemctl start media-samba.mount
# systemctl status media-samba.mount
# systemctl stop media-samba.mount
# systemctl restart media-samba.mount
# systemctl status media-samba.mount

Στην περιοχή systemd μπορείτε να ενεργοποιήσετε ή να απενεργοποιήσετε μια υπηρεσία κατά την εκκίνηση.

# systemctl enable [service] 		# enable a service 
# systemctl disable [service] 		# prevent a service from starting at boot

Η διαδικασία ενεργοποίησης ή απενεργοποίησης μιας υπηρεσίας για αυτόματη εκκίνηση κατά την εκκίνηση συνίσταται στην προσθήκη ή αφαίρεση συμβολικών συνδέσμων στον κατάλογο /etc/systemd/system/multi-user.target.wants.

Εναλλακτικά, μπορείτε να μάθετε την τρέχουσα κατάσταση μιας υπηρεσίας (ενεργοποιημένη ή απενεργοποιημένη) με την εντολή.

# systemctl is-enabled [service]

Για παράδειγμα,

# systemctl is-enabled postfix.service

Επιπλέον, μπορείτε να επανεκκινήσετε ή να τερματίσετε το σύστημα με.

# systemctl reboot
# systemctl shutdown

Νεόπλουτος

Το Upstart είναι μια αντικατάσταση που βασίζεται σε εκδηλώσεις για τον δαίμονα /sbin/init και γεννήθηκε από την ανάγκη να ξεκινήσουν υπηρεσίες μόνο, όταν χρειάζονται (επίσης επιβλέποντάς τις ενώ εκτελούνται) και χειρίζονται συμβάντα καθώς συμβαίνουν, ξεπερνώντας έτσι το κλασικό σύστημα sysvinit που βασίζεται σε εξαρτήσεις.

Αναπτύχθηκε αρχικά για τη διανομή Ubuntu, αλλά χρησιμοποιείται στο Red Hat Enterprise Linux 6.0. Αν και προοριζόταν να είναι κατάλληλο για ανάπτυξη σε όλες τις διανομές Linux ως αντικατάσταση του sysvinit, με τον καιρό επισκιάστηκε από το systemd. Στις 14 Φεβρουαρίου 2014, ο Mark Shuttleworth (ιδρυτής της Canonical Ltd.) ανακοίνωσε ότι οι μελλοντικές εκδόσεις του Ubuntu θα χρησιμοποιούν το systemd ως τον προεπιλεγμένο αρχικό δαίμονα.

Επειδή το σενάριο εκκίνησης SysV για το σύστημα ήταν τόσο συνηθισμένο εδώ και πολύ καιρό, ένας μεγάλος αριθμός πακέτων λογισμικού περιλαμβάνει σενάρια εκκίνησης SysV. Για να φιλοξενήσει τέτοια πακέτα, το Upstart παρέχει μια λειτουργία συμβατότητας: Εκτελεί σενάρια εκκίνησης SysV στις συνήθεις τοποθεσίες (/etc/rc.d/rc?.d, /etc/init.d/ rc?.d, /etc/rc?.d ή παρόμοια τοποθεσία). Έτσι, εάν εγκαταστήσουμε ένα πακέτο που δεν περιλαμβάνει ακόμη ένα σενάριο διαμόρφωσης Upstart, θα πρέπει να ξεκινήσει με τον συνηθισμένο τρόπο.

Επιπλέον, εάν έχουμε εγκαταστήσει βοηθητικά προγράμματα όπως το chkconfig, θα πρέπει να μπορείτε να τα χρησιμοποιείτε για τη διαχείριση των υπηρεσιών σας που βασίζονται στο SysV, όπως θα κάναμε στα συστήματα που βασίζονται στο sysvinit.

Τα σενάρια Upstart υποστηρίζουν επίσης την έναρξη ή τη διακοπή υπηρεσιών που βασίζονται σε μια ευρύτερη ποικιλία ενεργειών από τα σενάρια εκκίνησης SysV. Για παράδειγμα, το Upstart μπορεί να ξεκινήσει μια υπηρεσία κάθε φορά που συνδέεται μια συγκεκριμένη συσκευή υλικού.

Ένα σύστημα που χρησιμοποιεί το Upstart και τα εγγενή του σενάρια αντικαθιστά αποκλειστικά το αρχείο /etc/inittab και τους καταλόγους σεναρίων εκκίνησης για συγκεκριμένο επίπεδο εκτέλεσης SysV με .conf σενάρια στον κατάλογο /etc/init.

Αυτά τα σενάρια *.conf (γνωστά και ως ορισμοί εργασιών) αποτελούνται γενικά από τα εξής:

    1. Περιγραφή της διαδικασίας.
    2. Επίπεδα εκτέλεσης όπου πρέπει να εκτελείται η διαδικασία ή συμβάντα που θα πρέπει να την ενεργοποιήσουν.
    3. Επίπεδα εκτέλεσης στα οποία πρέπει να σταματήσει η διαδικασία ή συμβάντα που πρέπει να τη σταματήσουν.
    4. Επιλογές.
    5. Εντολή εκκίνησης της διαδικασίας.

    Για παράδειγμα,

    # My test service - Upstart script demo description "Here goes the description of 'My test service'" author "Dave Null <>"
    # Stanzas
    
    #
    # Stanzas define when and how a process is started and stopped
    # See a list of stanzas here: http://upstart.ubuntu.com/wiki/Stanzas#respawn
    # When to start the service
    start on runlevel [2345]
    # When to stop the service
    stop on runlevel [016]
    # Automatically restart process in case of crash
    respawn
    # Specify working directory
    chdir /home/dave/myfiles
    # Specify the process/command (add arguments if needed) to run
    exec bash backup.sh arg1 arg2
    

    Για να εφαρμόσετε αλλαγές, θα χρειαστεί να πείτε στο upstart να φορτώσει ξανά τη διαμόρφωσή του.

    # initctl reload-configuration
    

    Στη συνέχεια ξεκινήστε την εργασία σας πληκτρολογώντας την ακόλουθη εντολή.

    $ sudo start yourjobname
    

    Όπου yourjobname.conf είναι το όνομα της εργασίας που προστέθηκε νωρίτερα με το σενάριο yourjobname.conf.

    Ένας πιο πλήρης και λεπτομερής οδηγός αναφοράς για το Upstart είναι διαθέσιμος στον ιστότοπο του έργου στο μενού \Βιβλίο μαγειρικής.

    Περίληψη

    Η γνώση της διαδικασίας εκκίνησης του Linux είναι απαραίτητη για να σας βοηθήσει με την αντιμετώπιση προβλημάτων καθώς και με την προσαρμογή της απόδοσης του υπολογιστή και την εκτέλεση των υπηρεσιών στις ανάγκες σας.

    Σε αυτό το άρθρο έχουμε αναλύσει τι συμβαίνει από τη στιγμή που πατάτε το διακόπτη Power για να ενεργοποιήσετε το μηχάνημα μέχρι να αποκτήσετε μια πλήρως λειτουργική διεπαφή χρήστη. Ελπίζω να έμαθες να το διαβάζεις όσο και εγώ ενώ το συνέταξα. Μη διστάσετε να αφήσετε τα σχόλια ή τις ερωτήσεις σας παρακάτω. Ανυπομονούμε πάντα να ακούσουμε από τους αναγνώστες μας!