Πώς να μάθετε το pid μιας διαδικασίας Linux. Πώς να σκοτώσετε μια διαδικασία στο Linux. Τι είναι το PID

Τα κλειδιά για την Kaspersky απαιτούνται για την ενεργοποίηση των προϊόντων της Kaspersky Lab. Τα κλειδιά άδειας μπορούν να αγοραστούν στον επίσημο ιστότοπο της εταιρείας. Μπορείτε όμως να χρησιμοποιήσετε το Kaspersky δωρεάν και ταυτόχρονα επίσημα. Σε αυτό το άρθρο θα μιλήσουμε για το πώς να το κάνουμε αυτό. Και ούτω καθεξής με τη σειρά.

Πού να αποκτήσετε ένα πρόγραμμα προστασίας από ιούς και πώς να το εγκαταστήσετε

Είναι καλύτερα να κατεβάσετε τα προγράμματα της Kaspersky Lab από τον επίσημο ιστότοπο της εταιρείας. Αλλά πρώτα, ας ρίξουμε μια πιο προσεκτική ματιά στα ονόματα και τις συντομογραφίες.

Kaspersky Anti-Virus, συντομογραφία KAV. Ένα από τα πρώτα προϊόντα της εταιρείας. Όσοι είναι μεγαλύτεροι ίσως θυμούνται πώς ούρλιαζε σαν γουρούνι όταν ανακάλυψε τον ιό. Το κύριο καθήκον του είναι να προστατεύει τον υπολογιστή σας από ιούς.

Kaspersky Internet Security (Kaspersky διαδικτυακή ασφάλεια) σε συντομογραφία - KIS. Σε αντίθεση με το KAV, όχι μόνο προστατεύει τον υπολογιστή σας από ιούς, αλλά τον καθιστά ασφαλή τη χρήση του Διαδικτύου. Αποκλείει την παρακολούθηση των δεδομένων σας, προστατεύει τους κωδικούς πρόσβασης, αποκλείει επιβλαβή σενάρια και ιστότοπους, αποκλείει τα αναδυόμενα παράθυρα και πολλά άλλα. χρήσιμες λειτουργίες. Το KIS μπορεί να εγκατασταθεί τόσο σε υπολογιστές όσο και σε συσκευές Android.

Kaspersky Total Security (Kaspersky Απόλυτη ασφάλεια) σε συντομογραφία - KTS. Είναι ένα σχετικά νέο προϊόν της εταιρείας. Το KTS διαφέρει από το KIS στο ότι έχει πλέον τη δυνατότητα να διαχειρίζεται όλες τις συσκευές στις οποίες είναι εγκατεστημένο το Kaspersky Total Security μέσω της πύλης "my kaspersky", καθώς και πολλές χρήσιμες και εύχρηστες πρόσθετες λειτουργίες.

Η προστασία από ιούς και απειλές είναι η ίδια για αυτά τα προϊόντα. Οι υπογραφές του ιού και οι τεχνολογίες θεραπείας που χρησιμοποιούνται είναι οι ίδιες. Ακόμη και το σύνολο των στοιχείων στην καρτέλα "Προστασία" δεν διαφέρει μεταξύ τους. Έτσι, οποιοδήποτε από αυτά τα προϊόντα θα διατηρήσει τη συσκευή σας ασφαλή. Χρησιμοποιώ Kaspersky internet security.

Πώς να εγκαταστήσετε το πρόγραμμα Kaspersky

Για να εγκαταστήσετε το πρόγραμμα πρέπει να το κατεβάσετε. Όπως είπα στην αρχή, είναι καλύτερο να κάνετε λήψη από τον επίσημο ιστότοπο. Μεταβείτε στον ιστότοπο kaspersky.ru και επιλέξτε την ενότητα "λήψη".

Επιλέξτε το προϊόν για λήψη KAV, KIS ή KTS. Κάντε κλικ στο «λήψη». Για παράδειγμα, επέλεξα το Kaspersky Internet Security

Εκτελέστε το ληφθέν αρχείο εγκατάστασης και περιμένετε να ολοκληρωθεί η εγκατάσταση.

Μετά την εγκατάσταση, πρέπει να ενεργοποιήσουμε το πρόγραμμα. Για να το κάνετε αυτό, κάντε κλικ στο κουμπί «Ενεργοποίηση δοκιμαστικής έκδοσης του προγράμματος» και καταχωρήστε το πρόγραμμα προστασίας από ιούς για 30 ημέρες.

Τι να κάνετε όμως όταν τελειώσει η δωρεάν περίοδος;

Υπάρχουν δύο επιλογές:

  1. Αγορά κλειδί άδειας χρήσης KAV, KIS ή KTS
  2. Χρησιμοποιήστε δωρεάν δοκιμαστικά κλειδιά (θα μάθουμε πώς να το κάνουμε αυτό παρακάτω)

Κλειδιά για την Kaspersky, πού να τα αποκτήσετε και πώς να τα χρησιμοποιήσετε

Πριν από λίγο καιρό ήταν πολύ δημοφιλείς» ημερολογιακά κλειδιά" Αυτά τα κλειδιά είχαν διάρκεια ζωής από 30 έως 60 ημέρες. Δημοσιεύτηκαν σε περιοδικά θέματα υπολογιστώνόπως "Chip", "ComputerBild" και "PC World". Με κάθε νέο τεύχος του περιοδικού, κυκλοφόρησαν νέα κλειδιά περιοδικών. Αλλά δυστυχώς το δωρεάν τελείωσε στις αρχές του 2017.

Τα δοκιμαστικά κλειδιά τα έχουν αντικαταστήσει. Τι συνέβη δοκιμαστικό κλειδί? Το δοκιμαστικό κλειδί είναι μια δοκιμαστική άδεια για περίοδο 30 έως 90 ημερών. Δίνεται για δοκιμή προγράμματος προστασίας από ιούς. Η λειτουργικότητα του προγράμματος λειτουργεί σε σε πλήρη. Με αυτά τα κλειδιά μπορείτε να χρησιμοποιήσετε το Kaspersky δωρεάν και επίσημα.

Για να ενεργοποιήσετε τέτοια κλειδιά, πρέπει να αφαιρέσετε εντελώς το πρόγραμμα προστασίας από ιούς μαζί με τις πληροφορίες άδειας χρήσης (μπορείτε να επιλέξετε το πλαίσιο κατά τη διαγραφή). Αφού το κατεβάσετε από τον επίσημο ιστότοπο, εγκαταστήστε και ενεργοποιήστε το δοκιμαστικό κλειδί.

Ένας άλλος τρόπος είναι να κάνετε μια δοκιμή επαναφοράς. Γιατί αυτό είναι απαραίτητο διαβάστε παρακάτω.

Πώς να κάνετε μια δοκιμή επαναφοράς και γιατί χρειάζεται

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

Το δοκιμαστικό πρόγραμμα επαναφοράς Kaspersky σάς επιτρέπει να διαγράψετε αυτά τα δεδομένα και μπορείτε να τα ενεργοποιήσετε χωρίς προβλήματα δοκιμαστική άδειαπολλές φορές. Πώς γίνεται αυτή η επαναφορά;

Πρώτα πρέπει να κάνετε λήψη Το πρόγραμμα KasperskyΕπαναφορά δοκιμής. Μπορείτε να κάνετε λήψη (KRT 2.1.2.69). Μετά τη λήψη, ΜΗΝ εξαγάγετε το αρχείο, αλλά εκκινήστε το Kaspersky Antivirus και μεταβείτε στις ρυθμίσεις.

Επιλέξτε "Για προχωρημένους" → "Αυτοάμυνα" και απενεργοποιήστε την αυτοάμυνα.

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

Εκκινήστε το πρόγραμμα Kaspersky Reset Trial και κάντε κλικ στην ενεργοποίηση επαναφοράς.

Εάν παρουσιαστεί σφάλμα: Δεν είναι δυνατή η δημιουργία του αρχείου "KRT CLUB 2.0.0.35 Portable\KRT_CLUB.ini". Δεν επιτρέπεται η πρόσβασηαπαιτείται για το αρχείο KRT_CLUB.ini - καταργήστε την επιλογή του πλαισίου ελέγχου "μόνο για ανάγνωση" στις ιδιότητες του αρχείου.

Μετά την επαναφορά, το Kaspersky Antivirus θα ξεκινήσει αυτόματα. Εισάγετε το κλειδί και κάντε κλικ στο activate. Ας μην ξεχνάμε.

Παρέμεινε κύριο ερώτημα, από πού μπορώ να κατεβάσω τα πιο πρόσφατα κλειδιά για το Kaspersky; Μπορείτε να κατεβάσετε τα κλειδιά στον ιστότοπό μας (δείτε παρακάτω). Ψάξτε στο Διαδίκτυο, ευτυχώς πλέον υπάρχουν πολλά site που τα δημοσιεύουν.

Λήψη φρέσκων κλειδιών για το Kaspersky

Κλειδιά για το Kaspersky Anti-virus 2018

(ενημερώθηκε 12/11/2017)

Κλειδιά για το Kaspersky Internet Security 2018

(ενημερώθηκε 05/12/2018)

Κλειδιά για το Kaspersky Total Security 2018

(ενημερώθηκε 05/12/2018)

Κλειδιά για KIS Android 2018

(ενημερώθηκε 02/10/2018)

Συνοψίζω. Για να χρησιμοποιήσετε πρόγραμμα προστασίας από ιούς Kaspersky δωρεάν, πρέπει να εκτελέσετε τα ακόλουθα βήματα:

Εάν κάτι δεν σας πέτυχε, κάντε τις ερωτήσεις σας στα σχόλια. Καλή επιτυχία σε όλους, αντίο!

Σε αυτό το άρθρο θα προσπαθήσουμε να δημιουργήσουμε μια λειτουργική μονάδα πυρήνα που μπορεί να αλλάξει ήδη το PID τρέχουσα διαδικασίασε λειτουργικό σύστημα Linux και επίσης πειραματιστείτε με διεργασίες που έχουν λάβει ένα αλλαγμένο PID.


Προειδοποίηση: Η αλλαγή του PID είναι μια μη τυπική διαδικασία και υπό ορισμένες συνθήκες μπορεί να οδηγήσει σε πανικό πυρήνα.

Η δοκιμαστική μονάδα μας θα εφαρμόσει τη συσκευή χαρακτήρων /dev/test, η οποία θα αλλάξει το PID της διαδικασίας κατά την ανάγνωση από αυτήν. Χάρη σε αυτό το άρθρο για ένα παράδειγμα εφαρμογής μιας συσκευής χαρακτήρων. Πλήρης κωδικόςενότητα δίνεται στο τέλος του άρθρου. Φυσικά, τα περισσότερα η σωστή απόφασηήταν να προσθέσω κλήση συστήματοςστον ίδιο τον πυρήνα, αλλά αυτό θα απαιτήσει εκ νέου μεταγλώττιση του πυρήνα.

περιβάλλον

Όλες οι δραστηριότητες δοκιμής ενότητας πραγματοποιήθηκαν στο εικονική μηχανή VirtualBox με διανομή LInux 64-bit και έκδοση πυρήνα 4.14.4-1. Η επικοινωνία με το μηχάνημα πραγματοποιήθηκε χρησιμοποιώντας SSH.

Προσπάθεια #1 απλή λύση

Λίγα λόγια για το ρεύμα: η τρέχουσα μεταβλητή οδηγεί σε μια δομή task_struct με περιγραφή της διαδικασίας στον πυρήνα (PID, UID, GID, cmdline, namespaces, κ.λπ.)

Η πρώτη ιδέα ήταν να αλλάξουμε απλώς την παράμετρο current->pid από τη μονάδα πυρήνα στην επιθυμητή.

Στατικό ssize_t device_read (αρχείο struct *filp, char *buffer, size_t μήκος, loff_t * offset) ( printk("PID: %d.\n",current->pid); current->pid = 1; printk("new PID: %d.\n",current->pid); , )
Για να ελέγξω τη λειτουργικότητα της ενότητας, έγραψα ένα πρόγραμμα σε C++:

#περιλαμβάνω #περιλαμβάνω #περιλαμβάνω int main() ( std::cout<< "My parent PID " << getppid() << std::endl; std::cout << "My PID " << getpid() << std::endl; std::fstream f("/dev/test",std::ios_base::in); if(!f) { std::cout << "f error"; return -1; } std::string str; f >>str; std::cout<< "My new PID " << getpid() << std::endl; execl("/bin/bash","/bin/bash",NULL); }
Ας φορτώσουμε το module με την εντολή insmod, δημιουργήσουμε το /dev/test και δοκιμάστε το.

# ./a.out Ο γονέας μου PID 293 Το PID μου 782 Το νέο μου PID 782
Το PID δεν έχει αλλάξει. Αυτό μπορεί να μην είναι το μόνο μέρος όπου προσδιορίζεται το PID.

Προσπαθήστε #2 επιπλέον πεδία PID

Αν το current->pid δεν είναι το αναγνωριστικό διεργασίας, τότε ποιο είναι; Μια γρήγορη ματιά στον κώδικα getpid() έδειξε μια δομή task_struct που περιγράφει τη διαδικασία Linux και το αρχείο pid.c στον πηγαίο κώδικα του πυρήνα. Η απαιτούμενη συνάρτηση είναι __task_pid_nr_ns. Στον κωδικό συνάρτησης υπάρχει μια κλήση task->pids.pid, θα αλλάξουμε αυτήν την παράμετρο

Μεταγλώττιση και δοκιμή

Δεδομένου ότι δοκίμασα μέσω SSH, μπόρεσα να λάβω την έξοδο του προγράμματος πριν από τη συντριβή του πυρήνα:

Ο γονέας μου PID 293 Το PID μου 1689 Το νέο μου PID 1689
Το πρώτο αποτέλεσμα είναι ήδη κάτι. Αλλά το PID εξακολουθεί να μην έχει αλλάξει.

Προσπάθεια #3 μη εξαγώγιμα σύμβολα πυρήνα

Μια πιο προσεκτική ματιά στο pid.c έδωσε μια συνάρτηση που κάνει αυτό που χρειαζόμαστε
static void __change_pid(struct task_struct *task, enum pid_type type,
struct pid *νέο)
Η συνάρτηση δέχεται μια εργασία για την οποία είναι απαραίτητη η αλλαγή του PID, του τύπου PID και, στην πραγματικότητα, του νέου PID. Η συνάρτηση δημιουργεί ένα νέο PID
struct pid *alloc_pid(struct pid_namespace *ns)

Αυτή η συνάρτηση δέχεται μόνο τον χώρο ονομάτων στον οποίο θα βρίσκεται το νέο PID. Αυτό το διάστημα μπορεί να ληφθεί χρησιμοποιώντας το task_active_pid_ns .
Αλλά υπάρχει ένα πρόβλημα: αυτά τα σύμβολα του πυρήνα δεν εξάγονται από τον πυρήνα και δεν μπορούν να χρησιμοποιηθούν σε λειτουργικές μονάδες. Ένα υπέροχο με βοήθησε να λύσω αυτό το πρόβλημα. Ο κωδικός συνάρτησης find_sym λαμβάνεται από εκεί.

Static asmlinkage void (*change_pidR)(struct task_struct *task, enum pid_type type, struct pid *pid); static asmlinkage struct pid* (*alloc_pidR)(struct pid_namespace *ns); static int __init test_init(void) ( printk(KERN_ALERT "TEST driver loaded!\n"); change_pidR = find_sym("change_pid"); alloc_pidR = find_sym("alloc_pid"); ... ) static ssize_t device_read(struct file * filp, char *buffer, size_t μήκος, loff_t * offset) ( printk("PID: %d.\n",current->pid); struct pid* newpid; newpid = alloc_pidR(task_active_pid_ns(current)); change_pidR(current ,PIDTYPE_PID,newpid); printk("new PID: %d.\n",current->pid); ... )
Μεταγλώττιση, εκκίνηση

Ο γονέας μου PID 299 Το PID 750 Το νέο μου PID 751
Το PID άλλαξε! Ο πυρήνας εκχώρησε αυτόματα ένα δωρεάν PID στο πρόγραμμά μας. Είναι όμως δυνατόν να χρησιμοποιηθεί ένα PID που έχει καταληφθεί από άλλη διεργασία, όπως το PID 1; Ας προσθέσουμε τον κωδικό μετά την κατανομή

Newpid->numbers.nr = 1;
Μεταγλώττιση, εκκίνηση

Ο γονέας μου PID 314 Το PID μου 1172 Το νέο μου PID 1
Παίρνουμε πραγματικό PID 1!

Το Bash παρουσίασε ένα σφάλμα που εμποδίζει την εναλλαγή εργασιών με χρήση της εντολής %n, αλλά όλες οι άλλες λειτουργίες λειτουργούν καλά.

Ενδιαφέροντα χαρακτηριστικά διεργασιών με αλλαγμένο PID

PID 0: το enter δεν μπορεί να βγει

Ας επιστρέψουμε στον κωδικό και ας αλλάξουμε το PID σε 0.

Newpid->numbers.nr = 0;
Μεταγλώττιση, εκκίνηση

Ο γονέας μου PID284 Το PID μου 1517 Το νέο μου PID 0
Άρα το PID 0 δεν είναι τόσο ιδιαίτερο; Χαιρόμαστε, γράφουμε έξοδο και...

Η οβίδα πέφτει! Ο πυρήνας όρισε την εργασία μας ως IDLE TASK και, βλέποντας την ολοκλήρωση, απλά συνετρίβη. Προφανώς, το πρόγραμμά μας πρέπει να επιστρέψει στο «κανονικό» PID του πριν από την έξοδο.

Αόρατη διαδικασία

Ας επιστρέψουμε στον κωδικό και ας ορίσουμε ένα PID που είναι εγγυημένο ότι δεν θα είναι απασχολημένο
newpid->numbers.nr = 12345;

Μεταγλώττιση, εκκίνηση

Ο γονέας μου PID296 Το PID μου 735 Το νέο μου PID 12345
Ας δούμε τι υπάρχει στο /proc

1 148 19 224 288 37 79 86 93 κονσόλες fb kcore locks partitions swaps έκδοση 10 149 2 226 29 4 8 87 acpi cpuinfo συστήματα αρχείων key-users meminfo sched_debug 5020 88 ως ound crypto fs keys misc schedstat sysrq - ενεργοποίηση vmstat 11 16 208 24 291 6 81 89 συσκευές buddyinfo διακόπτει μονάδες kmsg scsi sysvipc zoneinfo 12 17 21 25 296 7 82 9 bus diskstats iomem kpagecgroup mounts self 67 213 3 90 cgroup s dma ioports kpagecount mtrr slabinfo timer_list 139 18 22 27 30 76 84 91 cmdline πρόγραμμα οδήγησης irq kpageflags net softirqs tty 14 182 222 28 31 78 85 92 config.gz execdomains kallsyms up page loada
Όπως μπορούμε να δούμε, το /proc δεν προσδιορίζει τη διεργασία μας, ακόμα κι αν έχουμε καταλάβει ένα ελεύθερο PID. Το προηγούμενο PID δεν είναι επίσης στο /proc, και αυτό είναι πολύ περίεργο. Ίσως βρισκόμαστε σε διαφορετικό χώρο ονομάτων και επομένως δεν είναι ορατοί στο main /proc. Ας προσαρτήσουμε ένα νέο /proc και ας δούμε τι υπάρχει

1 14 18 210 25 291 738 81 9 συσκευές διαύλου fs key-users locks pagetypeinfo softirqs timer_list 10 148 182 22 26 296 741 82 90 cgroups diskstats t29 me29 interrupts πλήκτρα 27 30 76 83 92 cmdline dma iomem kmsg διάφορα sched_debug swaps uptime 11 15 2 224 28 37 78 84 93 config.gz πρόγραμμα οδήγησης ioports kpagecgroup λειτουργικές μονάδες schedstat sys έκδοση 12 16 20 226 288 4 79 85 acpi κονσόλες moggers infosqt 1 3 17 208 23 29 6 8 86 asound cpuinfo fb ​​​​kallsyms kpageflags mtrr self sysvipc vmstat 139 176 21 24 290 7 80 87 buddyinfo συστήματα αρχείων κρυπτογράφησης kcore loadavg net slabinfo thread-self zoneinfo
Η διεργασία μας εξακολουθεί να μην υπάρχει, πράγμα που σημαίνει ότι βρισκόμαστε στον κανονικό χώρο ονομάτων. Ας ελέγξουμε

Ψ -ε | grep bash
296 πόντοι/0 00:00:00 bash

Μόνο ένα bash, από το οποίο ξεκινήσαμε το πρόγραμμα. Ούτε το προηγούμενο PID ούτε το τρέχον είναι στη λίστα.

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

Χαρακτηριστικά λειτουργικού συστήματος

Πριν απαντήσετε στην ερώτηση τι είναι ένα pid, είναι σημαντικό να κατανοήσετε τη λειτουργικότητα από την οποία εξαρτώνται οι λειτουργίες του αναγνωριστικού:

  • εργασία με δεδομένα, εκκίνηση και διακοπή λογισμικού.
  • αλληλεπίδραση με συσκευές εισόδου/εξόδου·
  • διανομή και οργάνωση της μνήμης RAM·
  • εξασφάλιση πρόσβασης σε ασταθή μέσα
  • βελτιστοποίηση των πόρων της μηχανής.
  • εξασφάλιση ασφαλούς πρόσβασης για κάθε αντικείμενο σε πόρους μηχανής·
  • αξιόπιστη υπολογιστική?
  • προστασία δεδομένων από κακόβουλο λογισμικό και σκόπιμη εισβολή.


ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

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

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

Οποιαδήποτε διαδικασία χαρακτηρίζεται από διάφορες παραμέτρους:

  • κωδικός μηχανής?
  • εκτελέσιμος κώδικας?
  • ένα δεσμευμένο τμήμα μνήμης (μερικές φορές εικονικό).
  • Χαρακτηριστικά ασφαλείας·
  • δεδομένα εισόδου/εξόδου.
  • μια στοίβα κλήσεων που παρακολουθεί τη δραστηριότητα κάθε αντικειμένου.
  • το λεγόμενο «σωρό», το οποίο αποθηκεύει τα ενδιάμεσα αποτελέσματα πράξεων και υπολογισμών.

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

Έννοια ταυτότητας

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

Για να δείτε πιο προσεκτικά το ευρετήριο, μπορείτε να ακολουθήσετε δύο τρόπους:

  1. Ανοίξτε τη διαχείριση εργασιών κάνοντας δεξί κλικ στη γραμμή εργασιών. Στη συνέχεια, μεταβείτε στην καρτέλα "Διαδικασίες" και επιλέξτε το μενού "Προβολή". Βρίσκουμε το στοιχείο "Επιλογή στηλών", στο πλαίσιο διαλόγου που ανοίγει, επιλέξτε το πλαίσιο για PID. Γράφουμε λίστα εργασιών στη γραμμή εντολών.
  2. Για συστήματα Unix, ισχύει επίσης μια άλλη τακτική. Συνιστάται να χρησιμοποιήσετε την εντολή ps εδώ. Με τη βοήθειά του μπορείτε να βρείτε το αναγνωριστικό για ένα συγκεκριμένο πρόγραμμα.

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

Οι σύγχρονες γλώσσες προγραμματισμού καθιστούν δυνατή την «απομόνωση» πληροφοριών σχετικά με ένα αντικείμενο ενδιαφέροντος από έναν συνηθισμένο αριθμό. Σε επίπεδο λογισμικού, είναι δυνατή η ανάπτυξη κώδικα που αλληλεπιδρά άμεσα με το pid. Τι δίνει αυτό; Με μερικά μόνο κλικ, μπορείτε να εμφανίσετε την πλήρη διαδρομή προς το αρχείο ή το πρόγραμμα που σας ενδιαφέρει. Ουσιαστικά, αυτό όχι μόνο θα σας επιτρέψει να κατανοήσετε και να βελτιστοποιήσετε τη λειτουργία του συστήματος (την ποσότητα των απαιτούμενων πόρων), αλλά και να προστατέψετε το μηχάνημα από πιθανές απειλές.

Για αποφυγή σύγχυσης

Στα ηλεκτρονικά, υπάρχει επίσης ένας ελεγκτής pid - μια ηλεκτρονική συσκευή που χρησιμοποιείται σε συστήματα αυτόματου ελέγχου. Σας επιτρέπει όχι μόνο να δημιουργήσετε ένα σήμα ελέγχου, αλλά και να επηρεάσετε την ακρίβεια και την ποιότητα της μεταβατικής διαδικασίας.

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

Όπως και να έχει, ορισμένες εφαρμογές σε Linuxμερικές φορές παγώνουν. Ταυτόχρονα, υπάρχουν περιπτώσεις που η εφαρμογή δεν ανταποκρίνεται καθόλου ή λειτουργεί τόσο αργά που δεν είναι δυνατός ο σωστός τερματισμός της εργασίας της. Για να βγείτε γρήγορα από την προκύπτουσα κατάσταση, μπορείτε να "σκοτώσετε" αυτή τη διαδικασία. Για να το κάνετε αυτό, χρησιμοποιήστε τις εντολές σκοτώνωΚαι killall. Τώρα θα καταλάβουμε πώς να χρησιμοποιήσουμε αυτές τις εντολές, θα βρούμε το PID της διαδικασίας και θα στείλουμε το σήμα SIGKILL.

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

Προσδιορίστε το PID μιας διεργασίας - εντολή pidof

PID— μοναδικό αναγνωριστικό διεργασίας στο σύστημα Linux. Για να σταματήσετε σωστά μια διαδικασία, θα πρέπει πρώτα να προσδιορίσετε το PID της. Για να το κάνετε αυτό, χρησιμοποιήστε τις εντολές ps και grep. Με τη σειρά του εντολή psέχει σχεδιαστεί για να εμφανίζει μια λίστα ενεργών διεργασιών στο σύστημα και πληροφορίες σχετικά με αυτές. εντολή grepεκτελείται ταυτόχρονα με το ps (σε ένα κανάλι) και θα αναζητήσει τα αποτελέσματα της εντολής ps. Μπορείτε να απαριθμήσετε όλες τις διεργασίες εκτελώντας στη γραμμή εντολών:

Φυσικά, το PID μπορεί επίσης να προσδιοριστεί χρησιμοποιώντας μπλουζα. Αλλά στις περισσότερες περιπτώσεις, ο αριθμός των διεργασιών είναι πολύ μεγάλος (και αλλάζει δυναμικά στην κορυφή), επομένως δεν είναι τόσο εύκολο να προσδιοριστεί γρήγορα και σωστά το PID. Για αυτό ακριβώς χρησιμοποιείται η εντολή grep. Για παράδειγμα, για να τερματίσετε τη διαδικασία του προγράμματος περιήγησης Google Chrome, πρέπει να εκτελέσετε την ακόλουθη εντολή:

p.s. | grep chrome

[ ////// ~]$ ps axu | grep chrome
itechf2 20474 2.7 1.5 938416 120136 tty2 Sl+ 11:07 0:00 /opt/google/chrome/chrome

Στην περίπτωσή μας, το 20474 είναι το επιθυμητό PID. Ένας ευκολότερος τρόπος είναι να χρησιμοποιήσετε την εντολή pidof, πρέπει να καθορίσετε το όνομα της διαδικασίας. Για παράδειγμα:

[ ///// ~]$ pidof chrome
20728 20706 20668 20647 20586 20574 20553 20508 20474

Τερματίστε μια διαδικασία στο Linux - εντολές kill and killall

Τερματίστε μια διαδικασία στο λειτουργικό σύστημα Linux, γνωρίζοντας το PID του, μπορείτε να χρησιμοποιήσετε την εντολή σκοτώνω. Αξίζει να το γνωρίζετε και να το κατανοήσετε: η εντολή kill έχει σχεδιαστεί για να στέλνει ένα σήμα σε μια διαδικασία. Από προεπιλογή, εάν δεν καθορίσουμε ποιο σήμα θα στείλουμε, αποστέλλεται το σήμα SIGTERM (από τη λέξη τερματισμός). Το SIGTERM λέει ότι η διαδικασία τερματίζεται. Κάθε σήμα έχει τον δικό του αριθμό. Το SIGTERM έχει τον αριθμό 15. Μια λίστα με όλα τα σήματα (και τους αριθμούς τους) που μπορεί να στείλει η εντολή kill μπορεί να ληφθεί εκτελώντας σκοτώνω -l . Για να στείλετε το σήμα SIGKILL (με αριθμό 9) στη διεργασία 2811, εκτελέστε τη γραμμή εντολών:

Ταυτόχρονα, το σήμα SIGTERM μπορεί να μην σταματήσει τη διαδικασία (για παράδειγμα, όταν το σήμα παρεμποδίζεται ή αποκλειστεί), αλλά το SIGKILL σκοτώνει πάντα τη διαδικασία, αφού δεν μπορεί να υποκλαπεί ή να αγνοηθεί.

εντολή killallστο Linux έχει σχεδιαστεί για να «σκοτώνει» όλες τις διαδικασίες με το ίδιο όνομα. Αυτό είναι βολικό γιατί δεν χρειάζεται να γνωρίζουμε το PID της διαδικασίας. Για παράδειγμα, θέλουμε να κλείσουμε όλες τις διεργασίες με το όνομα chrome. Εκτέλεση στο τερματικό:

Η εντολή killall, όπως και kill, στέλνει το σήμα SIGTERM από προεπιλογή. Για να στείλετε άλλο σήμα πρέπει να χρησιμοποιήσετε την επιλογή -μικρό . Για παράδειγμα:

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

Ομάδα Σκοτώνωμπορεί να χρησιμοποιηθεί για να σκοτώσει ή να τερματίσει μια διαδικασία χρησιμοποιώντας "Signal" ή "PID". Η εντολή Kill στέλνει το καθορισμένο σήμα για τον τερματισμό μιας εφαρμογής που δεν συμπεριφέρεται σωστά. Εάν δεν έχει καθοριστεί σήμα, αποστέλλεται το σήμα TERM. Αυτό το σήμα TERM θα σκοτώσει διεργασίες που δεν το πιάνουν. για άλλες διεργασίες μπορεί να χρειαστεί να χρησιμοποιήσετε το σήμα Kill (αριθμός 9), καθώς αυτό το σήμα δεν μπορεί να υποκλαπεί.

Το SIGTERM είναι ένα σήμα που ζητά να σταματήσει μια διαδικασία. Σε αυτή τη διαδικασία δίνεται χρόνος για να ολοκληρωθεί το έργο της.

Λοιπόν, με τη βοήθεια του σήματος SIGKILL, μπορούμε να αναγκάσουμε τη διαδικασία να τερματιστεί αμέσως. Και το Πρόγραμμα δεν έχει το δικαίωμα να αγνοήσει αυτό το σήμα και τερματίζει την εφαρμογή.

Ακολουθεί η μορφή της εντολής Kill:

σκοτώστε [ -σήμα | -s σήμα ] pid ...

Ο ευκολότερος τρόπος για να σκοτώσετε μια διεργασία είναι να βρείτε το PID του πόρου και στη συνέχεια να εκτελέσετε το PID ως όρισμα με την εντολή Kill.

Τι είναι το PID;

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

Μπορείτε να βρείτε το PID ενός πόρου χρησιμοποιώντας την εντολή "pidof" ή την εντολή "ps". Για να μάθετε το PID μιας διεργασίας (ας πούμε firefox) χρησιμοποιήστε την ακόλουθη εντολή

Pidof firefox

Μπορείτε επίσης να χρησιμοποιήσετε την εντολή σε άλλη μορφή:

Ψ-Α | grep -i firefox

Στο παραπάνω παράδειγμα, εμφανίζεται ο αριθμός “23814” που είναι το PID της διαδικασίας firefox. Αφού γνωρίζετε το PID της διαδικασίας (firefox), μπορείτε να χρησιμοποιήσετε την εντολή Kill για να σκοτώσετε τη διαδικασία (Firefox) όπως φαίνεται παρακάτω.

Kill 23814

Όταν μια εντολή εκτελεί ένα kill, δηλαδή στέλνει ένα σήμα στη διεργασία της οποίας το PID περνά μαζί με την εντολή ως όρισμα.

Για να γίνουμε πιο συγκεκριμένοι, η εντολή Kill έχει τις ακόλουθες μορφές:

  • σκοτώστε το PID
  • σκοτώστε -15 PID
  • σκοτώστε -9 PID
  • kill -SIGTERM PID
  • kill -SIGTERM PID

Η εντολή Kill έχει τους ακόλουθους κωδικούς επιστροφής:

  • 0 - στην επιτυχία
  • 1 – αποτυχία
  • 64 – μερική επιτυχία (αν καθορίζονται περισσότερες από μία διεργασίες)

Μια άλλη εντολή που μπορείτε να χρησιμοποιήσετε είναι KillAll. Το Killall χρησιμοποιεί επίσης το όνομα διεργασίας αντί για το PID και τερματίζει όλες τις παρουσίες της διαδικασίας με αυτό το όνομα. Για παράδειγμα, εάν εκτελείτε πολλές παρουσίες του Firefox, μπορείτε να τις τερματίσετε όλες με την εντολή

Killall firefox

Για διακομιστή X, υπάρχει μια άλλη εντολή που ονομάζεται Xkill, που μπορεί να σκοτώσει διαδικασίες. Η εντολή Xkill είναι για γραφική λειτουργία, χωρίς να περάσετε το όνομα της διαδικασίας ή το PID της, δηλαδή εάν εκτελείτε σε ένα τερματικό

τότε θα δείτε έναν σταυρό, με τον οποίο μπορείτε να τερματίσετε ένα πρόγραμμα που δεν λειτουργεί κάνοντας απλά κλικ πάνω του.

Αυτό είναι πόσο απλό και εύκολο είναι να σκοτώνεις διεργασίες στα λειτουργικά συστήματα GNU/Linux.



Έχετε ερωτήσεις;

Αναφέρετε ένα τυπογραφικό λάθος

Κείμενο που θα σταλεί στους συντάκτες μας: