pgrep, pkill, pidwait - αναζήτηση, αποστολή σήματος ή αναμονή για διεργασίες με βάση το όνομα και άλλα χαρακτηριστικά
ΣΥΝΤΑΞΗ
pgrep [επιλογές] μοτίβο
pkill [επιλογές] μοτίβο
pidwait [επιλογές] μοτίβο
ΠΕΡΙΓΡΑΦΗ
Το pgrep αναζητά τις τρέχουσες διεργασίες και καταγράφει τα αναγνωριστικά διεργασίας (PID) που ταιριάζουν με τα κριτήρια επιλογής στην τυπική έξοδο. Όλα τα κριτήρια πρέπει να ταιριάζουν. Για παράδειγμα,
$ pgrep -u root sshd
θα καταγράψει μόνο τις διεργασίες που ονομάζονται sshd ΚΑΙ ανήκουν στον χρήστη root. Από την άλλη πλευρά,
$ pgrep -u root,daemon
θα καταγράψει τις διεργασίες που ανήκουν στον χρήστη root Ή στον χρήστη daemon.
Το pkill θα στείλει το καθορισμένο σήμα (από προεπιλογή SIGTERM) σε κάθε διεργασία αντί να τις καταγράψει στην τυπική έξοδο.
Το pidwait θα περιμένει κάθε διεργασία αντί να τις καταγράψει στην τυπική έξοδο.
ΕΠΙΛΟΓΕΣ
-signal
--signal signal
Ορίζει το σήμα που θα σταλεί σε κάθε διεργασία που ταιριάζει. Μπορεί να χρησιμοποιηθεί είτε η αριθμητική είτε η συμβολική μορφή του ονόματος του σήματος. Στη λειτουργία pgrep ή pidwait, η μακρά επιλογή μπορεί να χρησιμοποιηθεί μόνο και δεν έχει αποτέλεσμα, εκτός εάν χρησιμοποιηθεί σε συνδυασμό με το --require-handler για να φιλτραριστούν οι διεργασίες που έχουν έναν χειριστή σήματος χρήστη για ένα συγκεκριμένο σήμα.
-c, --count
Καταστέλλει την κανονική έξοδο. Αντί αυτού, εκτυπώνει τον αριθμό των διεργασιών που ταιριάζουν. Όταν η τιμή που επιστρέφεται είναι μηδέν, η εντολή θα επιστρέψει μη μηδενική τιμή. Σημειώστε ότι για τις εντολές pkill και pidwait, ο αριθμός είναι ο αριθμός των διεργασιών που ταιριάζουν, όχι οι διεργασίες στις οποίες στάλθηκε με επιτυχία το σήμα ή για τις οποίες έγινε αναμονή.
-d, --delimiter διαχωριστικό
Ορίζει τη συμβολοσειρά που χρησιμοποιείται για τον διαχωρισμό κάθε αναγνωριστικού διεργασίας στην έξοδο (από προεπιλογή, μια νέα γραμμή). (Μόνο για το pgrep.)
-e, --echo
Εμφανίζει το όνομα και το PID της διεργασίας που σκοτώνεται. (Μόνο για το pkill.)
-f, --full
Κανονικά, το μοτίβο ταιριάζει μόνο με το όνομα της διεργασίας. Όταν ορίζεται το -f, χρησιμοποιείται ολόκληρη η γραμμή εντολών.
-g, --pgroup pgrp,...
Ταιριάζει μόνο με τις διεργασίες στις ομάδες διεργασιών που αναφέρονται. Η ομάδα διεργασιών 0 μεταφράζεται στην ομάδα διεργασιών του pgrep, του pkill ή του pidwait.
-G, --group gid,...
Ταιριάζει μόνο με τις διεργασίες των οποίων το πραγματικό αναγνωριστικό ομάδας είναι στις αναφερόμενες τιμές. Μπορεί να χρησιμοποιηθεί είτε η αριθμητική είτε η συμβολική τιμή.
-i, --ignore-case
Ταιριάζει με τις διεργασίες χωρίς διάκριση πεζών-κεφαλαίων.
-l, --list-name
Καταγράφει το όνομα της διεργασίας καθώς και το αναγνωριστικό διεργασίας. (Μόνο για το pgrep.)
-a, --list-full
Καταγράφει ολόκληρη τη γραμμή εντολών καθώς και το αναγνωριστικό διεργασίας. (Μόνο για το pgrep.)
-n, --newest
Επιλέγει μόνο τη νεότερη (πιο πρόσφατα ξεκινήσα) από τις διεργασίες που ταιριάζουν.
-o, --oldest
Επιλέγει μόνο την παλαιότερη (λιγότερο πρόσφατα ξεκινήσα) από τις διεργασίες που ταιριάζουν.
-O, --older δευτ
Επιλέγει διεργασίες που είναι παλαιότερες από δευτ.
-P, --parent ppid,...
Ταιριάζει μόνο με τις διεργασίες των οποίων το αναγνωριστικό της διεργασίας-γονέα είναι στις αναφερόμενες τιμές.
-s, --session sid,...
Αντιστοιχεί μόνο τις διεργασίες των οποίων το αναγνωριστικό συνεδρίας διεργασίας περιλαμβάνεται στη λίστα. Το αναγνωριστικό συνεδρίας 0 μεταφράζεται στο δικό του αναγνωριστικό συνεδρίας του pgrep, pkill ή pidwait.
-t, --terminal term,...
Αντιστοιχεί μόνο τις διεργασίες των οποίων ο ελέγχων τερματικός περιλαμβάνεται στη λίστα. Το όνομα του τερματικού πρέπει να καθορίζεται χωρίς το πρόθεμα "/dev/".
-u, --euid euid,...
Αντιστοιχεί μόνο τις διεργασίες των οποίων το αποτελεσματικό αναγνωριστικό χρήστη περιλαμβάνεται στη λίστα. Μπορεί να χρησιμοποιηθεί είτε η αριθμητική είτε η συμβολική τιμή.
-U, --uid uid,...
Αντιστοιχεί μόνο τις διεργασίες των οποίων το πραγματικό αναγνωριστικό χρήστη περιλαμβάνεται στη λίστα. Μπορεί να χρησιμοποιηθεί είτε η αριθμητική είτε η συμβολική τιμή.
-v, --inverse
Αντιστρέφει την αντιστοίχιση. Αυτή η επιλογή χρησιμοποιείται συνήθως στο περιβάλλον του pgrep ή pidwait. Στο περιβάλλον του pkill, η σύντομη επιλογή απενεργοποιείται για να αποφευχθεί η τυχαία χρήση της επιλογής.
-w, --lightweight
Εμφανίζει όλα τα αναγνωριστικά νημάτων αντί των αναγνωριστικών διεργασιών στο περιβάλλον του pgrep ή pidwait. Στο περιβάλλον του pkill, αυτή η επιλογή είναι απενεργοποιημένη.
-x, --exact
Αντιστοιχεί μόνο τις διεργασίες των οποίων τα ονόματα (ή οι γραμμές εντολών εάν καθοριστεί η επιλογή -f) αντιστοιχούν ακριβώς στο μοτίβο.
-F, --pidfile file
Διαβάζει τα PID από το αρχείο. Αυτή η επιλογή είναι πιο χρήσιμη για το pkill ή το pidwait από το pgrep.
-L, --logpidfile
Αποτυγχάνει εάν το αρχείο pid (βλ. -F) δεν είναι κλειδωμένο.
-r, --runstates D,R,S,Z,...
Αντιστοιχεί μόνο τις διεργασίες που ταιριάζουν με την κατάσταση της διεργασίας.
-A, --ignore-ancestors
Αγνοεί όλους τους προγόνους του pgrep, pkill ή pidwait. Για παράδειγμα, αυτό μπορεί να είναι χρήσιμο κατά την εκτέλεση με το sudo ή παρόμοια εργαλεία.
-H, --require-handler
Αντιστοιχεί μόνο τις διεργασίες που διαθέτουν έναν χειριστή σήματος χρήστη για το σήμα που πρόκειται να σταλεί.
--cgroup name,...
Αντιστοιχεί στο παρεχόμενο όνομα ομάδας ελέγχου (cgroup) v2. Δείτε το cgroups(8).
--ns pid
Αντιστοιχεί τις διεργασίες που ανήκουν στους ίδιους χώρους ονομάτων. Απαιτείται να εκτελείται ως root για να αντιστοιχίζονται διεργασίες από άλλους χρήστες. Δείτε το --nslist για τον τρόπο περιορισμού των χώρων ονομάτων που θα αντιστοιχιστούν.
--nslist name,...
Αντιστοιχεί μόνο στους παρεχόμενους χώρους ονομάτων. Διαθέσιμοι χώροι ονομάτων: ipc, mnt, net, pid, user, uts.
-q, --queue value
Χρησιμοποιεί το sigqueue(3) αντί του kill(2) και η τιμή του ορίσματος χρησιμοποιείται για να καθοριστεί ένας ακέραιος αριθμός που θα σταλεί με το σήμα. Εάν η διεργασία που λαμβάνει έχει εγκαταστήσει έναν χειριστή για αυτό το σήμα χρησιμοποιώντας τη σημαία SA_SIGINFO στο sigaction(2), τότε μπορεί να λάβει αυτά τα δεδομένα μέσω του πεδίου si_value της δομής siginfo_t.
-V, --version
Εμφανίζει πληροφορίες έκδοσης και εξέρχεται.
-h, --help
Εμφανίζει βοήθεια και εξέρχεται.
ΟΡΙΣΜΑΤΑ
pattern
Καθορίζει μια κανονική έκφραση για αντιστοίχιση με τα ονόματα διεργασιών ή τις γραμμές εντολών.
ΠΑΡΑΔΕΙΓΜΑΤΑ
Παράδειγμα 1: Βρείτε το αναγνωριστικό διεργασίας του daemon με όνομα:
$ pgrep -u root named
Παράδειγμα 2: Ζητήστε από το syslog να ξαναδιαβάσει το αρχείο διαμόρφωσής του:
$ pkill -HUP syslogd
Παράδειγμα 3: Δώστε λεπτομερείς πληροφορίες για όλες τις διεργασίες xterm:
$ ps -fp $(pgrep -d, -x xterm)
Παράδειγμα 4: Κάντε όλες τις διεργασίες chrome να εκτελούνται με υψηλότερη προτεραιότητα:
$ renice +4 $(pgrep chrome)
ΚΑΤΑΣΤΑΣΗ ΕΞΟΔΟΥ
0 Μία ή περισσότερες διεργασίες ταιριάζουν με τα κριτήρια. Για τις [pkill](/) και [pidwait](/), μία ή περισσότερες διεργασίες πρέπει επίσης να έχουν υποστεί σήμανση ή να έχουν αναμονή επιτυχώς.
1 Καμία διεργασία δεν ταιριάζει ή καμία από αυτές δεν μπορούσε να υποστεί σήμανση.
2 Σφάλμα σύνταξης στη γραμμή εντολών.
3 Μοιραίο σφάλμα: έλλειψη μνήμης κ.λπ.
ΣΗΜΕΙΩΣΕΙΣ
Το όνομα της διαδικασίας που χρησιμοποιείται για την αντιστοίχιση περιορίζεται στα 15 χαρακτήρες που υπάρχουν στην έξοδο του /proc/pid/stat. Χρησιμοποιήστε την επιλογή -f για να κάνετε αντιστοίχιση με ολόκληρη τη γραμμή εντολών, /proc/pid/cmdline. Τα νήματα ενδέχεται να μην έχουν το ίδιο όνομα διαδικασίας με τη μητρική διαδικασία, αλλά θα έχουν την ίδια γραμμή εντολών.
Η τρέχουσα διαδικασία pgrep, pkill ή pidwait δεν θα αναφέρει ποτέ τον εαυτό της ως αντιστοίχιση.
Η επιλογή -O --older θα αποτύχει σιωπηλά εάν το /proc είναι συνδεδεμένο με την επιλογή subset=pid.
ΣΦΑΛΜΑΤΑ
Οι επιλογές -n και -o και -v δεν μπορούν να συνδυαστούν. Ενημερώστε με εάν χρειάζεστε να το κάνετε αυτό.
Αναφέρονται οι διαδικασίες σε κατάσταση αναμονής.
Το pidwait απαιτεί την κλήση συστήματος pidfd_open(2) η οποία εμφανίστηκε για πρώτη φορά στο Linux 5.3.
ΔΕΙΤΕ ΕΠΙΣΗΣ
ps(1), regex(7), signal(7), sigqueue(3), killall(1), skill(1), kill(1), kill(2), cgroups(8).
ΣΥΓΓΡΑΦΕΑΣ
Kjetil Torgrim Homme
ΑΝΑΦΟΡΑ ΣΦΑΛΜΑΤΩΝ
Στείλτε τις αναφορές σφαλμάτων στο _