Πώς να δημιουργήσετε και να διαχειριστείτε υπηρεσίες χρήστη στο Linux

Pos Na Demiourgesete Kai Na Diacheiristeite Yperesies Chreste Sto Linux



Ένας κανονικός χρήστης του Linux μπορεί να δημιουργήσει μια προσαρμοσμένη υπηρεσία systemd. Ενώ οι υπηρεσίες systemd διαχειρίζονται σε μεγάλο βαθμό οι διαχειριστές συστήματος χρησιμοποιώντας την εντολή systemctl. Η ίδια εντολή μπορεί επίσης να χρησιμοποιηθεί για τη διαχείριση υπηρεσιών για συγκεκριμένους χρήστες. το μόνο που χρειάζεστε είναι ένα -χρήστης σημαία.

Σε αυτόν τον οδηγό, θα καλύψω πώς να δημιουργήσετε μια συγκεκριμένη υπηρεσία χρήστη στο Linux και πώς να τη διαχειριστείτε χρησιμοποιώντας το systemctl.

Λόγος για την ύπαρξη κανονικής υπηρεσίας χρήστη

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







Πώς να δημιουργήσετε μια υπηρεσία κανονικού χρήστη

Οι συγκεκριμένες υπηρεσίες του χρήστη στο Linux τοποθετούνται στο ~/.config/systemd/user Ευρετήριο. Εάν αυτός ο κατάλογος δεν υπάρχει, τότε μπορεί να δημιουργηθεί.

mkdir ~ / .config / systemd / χρήστης

ο Το flag χρησιμοποιείται για τη δημιουργία ενός γονικού καταλόγου εάν απαιτείται. ο ~ υποδεικνύει τον αρχικό κατάλογο του τοπικού χρήστη και ισοδυναμεί με /home/χρήστης ενώ η τελεία πριν από το αρχείο ρυθμίσεων την κάνει κρυφή. Ας δημιουργήσουμε ένα απλό αρχείο σεναρίου bash που θα γράφει τη χρήση της μνήμης σε ένα κείμενο κάθε 30 λεπτά. Δημιουργώ το σενάριο με το όνομα του σενάριο.sh .

#! /bin/bash

ενώ αληθής

κάνω

Ελεύθερος >> / Σπίτι / χρήστης / myfile.txt

ύπνος 1800

Έγινε

Αυτό το σενάριο μπορεί να δημιουργηθεί οπουδήποτε, αλλά βεβαιωθείτε ότι η διαδρομή που καθορίζεται μέσα στο σενάριο είναι μια απόλυτη διαδρομή.

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

[ Μονάδα ]

Περιγραφή =Η υπηρεσία μου

[ Υπηρεσία ]

Τύπος =απλό

ExecStart = / αποθήκη / βίαιο χτύπημα / Σπίτι / χρήστης / σενάριο.sh

Επανεκκίνηση =σε αποτυχία

[ Εγκαθιστώ ]

WantedBy =default.target

Στην ενότητα [Μονάδα], το Περιγραφή οδηγία περιέχει απλώς το όνομα της υπηρεσίας. Σημειώστε ότι δεν πρέπει να είναι περισσότεροι από 80 χαρακτήρες.

Η ενότητα [Υπηρεσία] περιέχει τις τρεις σημαντικές οδηγίες. Πρώτον, το Τύπος ; το οποίο είναι απλός , έπειτα ExecStart που περιέχει το εκτελέσιμο αρχείο του προσαρμοσμένου σεναρίου μας. Η υπηρεσία θα επανεκκινηθεί μόνο όταν υπάρχει αποτυχία.

Η ενότητα [Εγκατάσταση] περιέχει το WantedBy οδηγία που είναι προεπιλογή.στόχος , υπονοώντας ότι η υπηρεσία θα ενεργοποιηθεί στην κατάσταση συστήματος όταν επιτευχθεί στο προεπιλεγμένο επίπεδο εκτέλεσης, το οποίο συνήθως είναι multi-user.target ή graphical.target.

Τώρα, αποθηκεύστε το αρχείο στο ~/.config/systemd/user κατάλογο με οποιοδήποτε όνομα? Το ονομάζω υπηρεσία μου.υπηρεσία .

Πώς να διαχειριστείτε μια υπηρεσία κανονικού χρήστη

Για τη διαχείριση της κανονικής υπηρεσίας χρήστη, η εντολή systemctl χρησιμοποιείται με το -χρήστης σημαία. ο -χρήστης Η σημαία σημαίνει ότι ο χρήστης επικοινωνεί με τον διαχειριστή υπηρεσιών και όχι με το σύστημα.

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

systemctl --χρήστης daemon-reload

Αυτό θα εφαρμόσει τις αλλαγές.

Για να μάθετε εάν η υπηρεσία εκτελείται ή όχι, χρησιμοποιήστε το systemctl, με το -χρήστης σημαία και επιλογή.

systemctl --χρήστης κατάσταση [ Όνομα Υπηρεσίας ]

Άλλες εντολές για τη διαχείριση της κανονικής υπηρεσίας χρήστη αναφέρονται παρακάτω:

systemctl --χρήστης αρχή [ Όνομα Υπηρεσίας ]

systemctl --χρήστης επιτρέπω [ Όνομα Υπηρεσίας ]

systemctl --χρήστης να σταματήσει [ Όνομα Υπηρεσίας ]

systemctl --χρήστης καθιστώ ανίκανο [ Όνομα Υπηρεσίας ]

systemctl --χρήστης επανεκκίνηση [ Όνομα Υπηρεσίας ]

Πώς να δημιουργήσετε μια κανονική υπηρεσία χρήστη με δικαιώματα διαχειριστή συστήματος

Υπάρχουν πολλές υπηρεσίες που δημιουργεί ένας χρήστης, αλλά απαιτούν άδεια διαχειριστή για να εκτελεστούν. Τέτοιες υπηρεσίες μπορούν να δημιουργηθούν προσθέτοντας a Χρήστης οδηγία στην ενότητα [Service].

ο Χρήστης οδηγία μπορεί να χρησιμοποιηθεί για να αναφέρει το όνομα του χρήστη του οποίου τα δικαιώματα απαιτούνται για την εκτέλεση της υπηρεσίας, όπως π.χ διαχειριστής . Έτσι, εάν ένας κανονικός χρήστης θέλει να δημιουργήσει μια υπηρεσία που απαιτεί δικαιώματα διαχειριστή, τότε απλώς προσθέτει το Χρήστης=διαχειριστής στην ενότητα [Service] θα κάνει τη δουλειά. Ωστόσο, αυτή η υπηρεσία θα παραμείνει ενεργή όσο ο διαχειριστής είναι ενεργός. Σημειώστε ότι αυτή η υπηρεσία δεν μπορεί να ελεγχθεί απευθείας από τον διαχειριστή.

συμπέρασμα

Ο κανονικός χρήστης μπορεί επίσης να δημιουργήσει μια υπηρεσία systemd, αλλά πρέπει να τοποθετηθεί ~/.config/systemd/user Ευρετήριο. Αυτή η υπηρεσία εκτελείται εφόσον ο χρήστης που τη δημιούργησε είναι συνδεδεμένος. Η διαχείριση αυτών των υπηρεσιών γίνεται επίσης μέσω της εντολής systemctl αλλά με -χρήστης σημαία. Το οποίο λέει στο systemd ότι η υπηρεσία καλείται από τον χρήστη και όχι από το σύστημα. Σε αυτόν τον οδηγό, δημιούργησα μια προσαρμοσμένη υπηρεσία κανονικού χρήστη και ανέφερα εντολές systemctl για τη διαχείρισή της. Επιπλέον, τόνισα επίσης μια μέθοδο για τη δημιουργία μιας υπηρεσίας που απαιτεί δικαιώματα διαχειριστή.