Hogyan lehet megölni egy folyamatot vagy leállítani egy programot Linuxban

Ha egy folyamat rosszul viselkedik, előfordulhat, hogy meg akarja szüntetni vagy meg akarja ölni. Ebben a bejegyzésben megvizsgálunk néhány módszert egy folyamat vagy egy alkalmazás befejezésére a parancssorból és egy grafikus felületről egyaránt, a gedit-et használva mintaalkalmazásként.

A parancssor/befejező karakterek használata

Ctrl + C

Az egyik probléma a gedit parancssorból történő meghívásával (ha nem használjuk a gedit &-t) az, hogy nem szabadítja fel a parancssort, így a shell munkamenet blokkolva van. Ilyen esetekben jól jön a Ctrl+C (a Control billentyű a ‘C’-vel kombinálva). Ez megszakítja a gedit-t, és minden munka elveszik (kivéve, ha a fájl mentése megtörtént). A Ctrl+C a SIGINT jelet küldi a gedit-nek. Ez egy leállítási jel, amelynek alapértelmezett hatása a folyamat befejezése. Arra utasítja a héjat, hogy állítsa le a gedit-t és térjen vissza a fő hurokba, és visszakapod a promptot.

$ gedit
^C

Ctrl + Z

Ezt hívják felfüggesztő karakternek. Ez egy SIGTSTP jelet küld a processznek. Ez egyúttal leállítási jel is, de az alapértelmezett művelet nem a folyamat megölése, hanem felfüggesztése.

Ez leállítja (megöli/megszünteti) gedit és visszaadja a shell promptot.

$ gedit
^Z
+ Stopped gedit
$

Amikor a folyamatot felfüggesztették (ebben az esetben gedit), a gedit-ben nem lehet semmit írni vagy csinálni. A háttérben a folyamat munkává válik. Ezt a jobs paranccsal ellenőrizhetjük.

$ jobs
+ Stopped gedit

jobs lehetővé teszi több folyamat vezérlését egyetlen shell munkameneten belül. A munkákat szükség szerint leállíthatjuk, folytathatjuk és áthelyezhetjük a háttérbe vagy az előtérbe.

Folytassuk a gedit folyamatot a háttérben, és szabadítsunk fel egy promptot más parancsok futtatására. Ezt a bg paranccsal teheti meg, amelyet a munka azonosítója követ (vegye észre a fenti jobs kimenetén a -t. a munka azonosítója).

$ bg 1
+ gedit &

Ez hasonló a gedit &, indításához:

 $ gedit &

A kill

kill használata lehetővé teszi a jelek finom vezérlését, lehetővé teszi egy folyamat jelzését egy jelnév vagy egy jelszám megadásával, amelyet egy folyamatazonosító vagy PID követ.

A kill-ban azt szeretem, hogy a munkaazonosítókkal is tud dolgozni. Indítsuk el a gedit-t a háttérben a gedit & segítségével. Feltételezve, hogy a jobs parancsból gedit munkaazonosítót kaptam, küldjük el a SIGINT-et a gedit-nek:

 $ kill -s SIGINT %1

Megjegyezzük, hogy a munkaazonosító elé %-at kell tenni, különben a kill PID-nek fogja tekinteni.

kill működhet a jel explicit megadása nélkül is. Ebben az esetben az alapértelmezett művelet a SIGTERM küldése, amely a folyamatot befejezi. A kill -l végrehajtásával listázza ki az összes szignál nevét, és a man kill paranccsal olvassa el a man oldalt.

A killall

használataHa nem akarunk munkaazonosítót vagy PID-et megadni, a killall segítségével a folyamatot név szerint adhatjuk meg. A gedit megszüntetésének legegyszerűbb módja a killall használatával a következő:

 $ killall gedit

Ez az összes gedit nevű folyamatot megöli. A kill-hoz hasonlóan az alapértelmezett jel a SIGTERM. Lehetősége van az esetek figyelmen kívül hagyására a -I használatával:

$ gedit &
14852
$ killall -I GEDIT
+ Terminated gedit

Az killall által biztosított különböző zászlókról (mint például a -u, amely lehetővé teszi a felhasználó tulajdonában lévő folyamatok megölését) többet megtudhat a man oldalon (man killall)

Az xkill

Hozott már létre olyan problémát, amikor egy médialejátszó, például a VLC, szürkére vált vagy leállt? Most megkeresheti a PID-t és megölheti az alkalmazást a fent felsorolt parancsok valamelyikével vagy a xkill használatával.

xkill lehetővé teszi az ablak megölését az egérrel. Egyszerűen hajtsa végre a xkill parancsot egy terminálban, aminek az egérkurzort egy x-re vagy egy apró koponya ikonra kell változtatnia. Kattintson az x-re a bezárni kívánt ablakon. Légy óvatos a xkill használatával – mivel a man oldala elmagyarázza, hogy veszélyes lehet. Figyelmeztettünk!

További információkért olvassa el az egyes parancsok man oldalát. Olyan parancsokat is felfedezhet, mint a pkill és a pgrep.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.