Πώς να εκτελέσετε αυτόματα εντολές και σενάρια Linux σε επανεκκίνηση συστήματος

How Run Linux Commands



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

Εφαρμογές εκκίνησης

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







Εκκινήστε την εφαρμογή Startup Applications από την εφαρμογή εκκίνησης και κάντε κλικ στο κουμπί Προσθήκη για να προσθέσετε μια νέα καταχώρηση.





Συμπληρώστε τα πεδία Όνομα και εντολή σύμφωνα με τις ανάγκες σας και, στη συνέχεια, κάντε κλικ στο κουμπί Προσθήκη για να ολοκληρώσετε τη δημιουργία μιας νέας καταχώρησης. Η καταχώριση που δημιουργείται στο παρακάτω στιγμιότυπο οθόνης θα στέλνει μια υπενθύμιση Δημιουργία αντιγράφων ασφαλείας ως ειδοποίηση συστήματος σε κάθε επανεκκίνηση / σύνδεση. Μπορείτε να το αντικαταστήσετε με τη δική σας εντολή ή με πλήρη διαδρομή του σεναρίου bash. Μπορείτε επίσης να χρησιμοποιήσετε οποιαδήποτε υπάρχουσα εντολή συστήματος ή εκτελέσιμα αρχεία που βρίσκονται συνήθως σε διάφορους φακέλους κάδων σε όλο το σύστημα αρχείων.





Όπως προαναφέρθηκε, μια εφεδρική υπενθύμιση εμφανίζεται σε κάθε επανεκκίνηση.



Systemd

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

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

$mkdir ~/.διαμόρφωση/Σύστημα/χρήστης
$νανο~/.διαμόρφωση/Σύστημα/χρήστης/backup_reminder.service

Αντικαταστήστε το nano με εντολή του αγαπημένου σας επεξεργαστή κειμένου. Αντικαταστήστε το backup_reminder με οποιοδήποτε άλλο όνομα προτιμάτε.

Επικολλήστε τον παρακάτω κώδικα στο αρχείο backup_reminder.service που δημιουργήθηκε χρησιμοποιώντας την παραπάνω εντολή.

[Μονάδα]
Περιγραφή = Στέλνει μια εφεδρική υπενθύμιση σε κάθε επανεκκίνηση
PartOf = graphical-session.target

[Υπηρεσία]
ExecStart = bash -c 'sleep 10; ειδοποίηση-αποστολή 'Δημιουργία αντιγράφου ασφαλείας'
Τύπος = oneshot

[Εγκαθιστώ]
WantedBy = graphical-session.target

Ο παραπάνω κώδικας είναι αρκετά απλός. Στέλνει μια ειδοποίηση Δημιουργία αντιγράφου ασφαλείας 10 δευτερόλεπτα μετά τη φόρτωση της γραφικής συνεδρίας (μία φορά κάθε επανεκκίνηση ή σύνδεση).

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

$chmod 644~/.διαμόρφωση/Σύστημα/χρήστης/backup_reminder.service
$ systemctl--χρήστης επιτρέπωbackup_reminder.service
$ systemctl--χρήστηςδαίμονας-επαναφόρτωση
επανεκκίνηση $

Αυτό δεν είναι παρά ένα απλό παράδειγμα εκτέλεσης μιας βασικής εντολής κατά την εκκίνηση χρησιμοποιώντας το systemd. Μπορείτε επίσης να δημιουργήσετε προηγμένες υπηρεσίες με πολλαπλές συνθήκες και πολλαπλές εντολές. Για περισσότερες πληροφορίες, ανατρέξτε στη σελίδα systemd man εκτελώντας την παρακάτω εντολή:

$άνδραςΣύστημα

Λάβετε υπόψη ότι αυτό το παράδειγμα εξηγεί τη δημιουργία μιας νέας υπηρεσίας που δεν απαιτεί πρόσβαση root και είναι κατάλληλη για αυτόματη εκκίνηση εφαρμογών που δεν απαιτούν δικαιώματα root. Εάν θέλετε να ξεκινήσετε αυτόματα δέσμες ενεργειών που απαιτούν πρόσβαση root, πρέπει να δημιουργήσετε μια νέα υπηρεσία systemd στον κατάλογο/etc/systemd/system αντί του φακέλου ~/.config/systemd/user και να παραλείψετε τη χρήση των εντολών που αναφέρονται παραπάνω.

Κρον Τζομπ

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

Όπως το systemd, οι εργασίες crontab μπορούν να χρησιμοποιηθούν για την εκκίνηση εφαρμογών και την αυτόματη εκτέλεση σεναρίων κατά την εκκίνηση. Για να προσθέσετε μια νέα εργασία cron, εκτελέστε την παρακάτω εντολή:

$crontab-Και

Προσθέστε τις ακόλουθες γραμμές στο τέλος του αρχείου κειμένου (ξεκινά αυτόματα το τερματικό GNOME σε κάθε επανεκκίνηση):

SHELL =/bin/bash
@reboot sleep 30 && DISPLAY =: 0 gnome-terminal

Μπορείτε να χρησιμοποιήσετε τη δική σας εντολή ή να παρέχετε πλήρη διαδρομή σε ένα σενάριο κελύφους.

Σημειώστε ότι σε αντίθεση με το systemd, το cron δεν μπορεί να ανιχνεύσει εάν η γραφική περίοδος έχει φορτωθεί ή όχι. Πρέπει να καθορίσετε μια εκτιμώμενη περίοδο αναμονής έως ότου φορτωθεί ο διακομιστής X και ένα αναγνωριστικό οθόνης. Μπορείτε να μάθετε για το αναγνωριστικό εμφάνισης εκτελώντας την παρακάτω εντολή:

$πέταξε έξω $ DISPLAY

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

Rc.τοπικό

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

Για να προσθέσετε εντολές / δέσμες ενεργειών στο αρχείο rc.local, εκτελέστε την παρακάτω εντολή (δημιουργεί ένα νέο αρχείο rc.local εάν δεν υπάρχει):

$sudo νανο /και τα λοιπά/rc.τοπικό

Προσθέστε τις εντολές σας μεταξύ #! /bin/bash και έξοδο 0 γραμμών, όπως φαίνεται παρακάτω:

#! /bin/bash
διαδρομή/προς/my_script.sh
έξοδος 0

Κάντε το αρχείο rc.local εκτελέσιμο εκτελώντας την παρακάτω εντολή:

$sudo chmod+ x/και τα λοιπά/rc.τοπικό

Απλώς επανεκκινήστε για να τεθεί σε ισχύ το σενάριο εκκίνησης.

συμπέρασμα

Αυτές είναι μερικές μέθοδοι που μπορούν να χρησιμοποιηθούν για την αυτόματη εκτέλεση σεναρίων και εφαρμογών κατά την εκκίνηση. Εάν θέλετε να εκτελέσετε δέσμες ενεργειών που δεν απαιτούν πρόσβαση root, θα συνιστούσα να χρησιμοποιήσετε την εφαρμογή GUI εφαρμογών εκκίνησης. Εάν θέλετε να εκτελέσετε εφαρμογές και σενάρια με πρόσβαση root, θα σας πρότεινα να δημιουργήσετε μια υπηρεσία συστήματος σε επίπεδο συστήματος.

Σχετικά με τον Συγγραφέα

Νιτές Κουμάρ

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

Δείτε όλες τις αναρτήσεις