Android

Tapa komento linuxissa

Ubuntu Virtual Machine Running on a Synology NAS

Ubuntu Virtual Machine Running on a Synology NAS

Sisällysluettelo:

Anonim

Linux on hieno ja edistyksellinen käyttöjärjestelmä, mutta se ei ole täydellinen. Joskus jotkut sovellukset saattavat alkaa käyttäytyä virheellisesti ja olla reagoimattomia tai alkaa kuluttaa paljon järjestelmäresursseja. Reagoimattomia sovelluksia ei voida käynnistää uudelleen, koska alkuperäinen sovellusprosessi ei sammu koskaan kokonaan. Ainoa ratkaisu on joko käynnistää järjestelmä uudelleen tai tappaa sovellusprosessi.

On olemassa useita apuohjelmia, joiden avulla voit lopettaa virheelliset prosessit kill yleisimmin käytetyt.

kill komento

kill on kuoren sisäänrakennettu useimmissa Bournesta peräisin olevissa kuorissa, kuten Bash ja Zsh. Komentokäyttäytyminen on hiukan erilainen kuorien ja itsenäisen /bin/kill suoritettavan välillä.

Kirjoita type kaikki järjestelmän sijainnit, jotka sisältävät kill :

type -a kill

kill is a shell builtin kill is /bin/kill

Yllä oleva tulos kertoo, että kuoren sisäänrakennuksella on etusija itsenäiseen suoritettavaan tiedostoon nähden, ja sitä käytetään aina, kun kirjoitat kill . Jos haluat käyttää binääristä, kirjoita koko polku tiedostoon /bin/kill ., käytämme Bash-rakennusta.

kill komennon syntaksi on seuraava:

kill…

Tappokomento lähettää signaalin tietyille prosesseille tai prosessoryhmille, aiheuttaen niiden toimimaan signaalin mukaan. Kun signaalia ei määritetä, sen oletusarvo on -15 (-TERM).

Yleisimmin käytetyt signaalit ovat:

  • 1 ( HUP ) - Lataa prosessi uudelleen. 9 ( KILL ) - tappaa prosessi. 15 ( TERM ) - Pysäytä prosessi sulavasti.

Saadaksesi luettelon kaikista käytettävissä olevista signaaleista, käynnistä komento -l vaihtoehdolla:

kill -l

Signaalit voidaan määritellä kolmella eri tavalla:

  1. Käytä numeroa (esim. -1 tai -s 1 ).Käyttämällä ”SIG” -etuliitettä (esim. -SIGHUP tai -s SIGHUP SIGHUP). Ilman ”SIG” -etuliitettä (esim. -HUP tai -s HUP ).

Seuraavat komennot vastaavat toisiaan:

kill -1 PID_NUMBER kill -SIGHUP PID_NUMBER kill -HUP PID_NUMBER

kill komennolle toimitetut PID: t voivat olla yksi seuraavista:

  • Jos PID on suurempi kuin nolla, signaali lähetetään prosessille ID: llä, joka on yhtä suuri kuin PID . Jos PID on yhtä suuri kuin nolla, signaali lähetetään kaikkiin nykyisen prosessiryhmän prosesseihin. Toisin sanoen, signaali lähetetään kaikille prosesseille, jotka kuuluvat kuoren GID: iin, joka kutsui tappakomennon. Käytä ps -efj komentoa tarkastellaksesi prosessoryhmätunnuksia (GID).Jos PID on yhtä suuri kuin -1 , signaali lähetetään kaikkiin prosesseihin samalla UID-tunnuksella kuin komentoa kutsuva käyttäjä. Jos kutsuva käyttäjä on root, signaali lähetetään kaikille prosesseille paitsi init ja itse kill Jos PID on alle -1 , signaali lähetetään kaikkiin prosessiryhmän eq prosesseihin GID: n ollessa yhtä suuri kuin PID .

Tavalliset käyttäjät voivat lähettää signaaleja omiin prosesseihinsa, mutta eivät niihin, jotka kuuluvat muille käyttäjille, kun taas pääkäyttäjä voi lähettää signaaleja muiden käyttäjien prosesseihin.

Prosessien lopettaminen tappakomennon avulla

Jos haluat lopettaa tai tappaa prosessin kill komennolla, sinun on ensin löydettävä prosessin tunnusnumero (PID). Voit tehdä tämän käyttämällä erilaisia ​​komentoja, kuten top , ps , pidof ja pidof .

Oletetaan, että Firefox-selaimesta on tullut reagoimaton, ja sinun täytyy tappaa Firefox-prosessi. Käytä pidof komentoa löytääksesi selaimen PID: t:

pidof firefox

Komento tulostaa kaikkien Firefox-prosessien tunnukset:

6263 6199 6142 6076

Kun tiedät prosessien numerot, voit lopettaa ne kaikki lähettämällä TERM signaalin:

kill -9 2551 2514 1963 1856 1771

PID-tiedostojen etsimisen ja sitten prosessien lopettamisen sijasta voit yhdistää yllä olevat komennot yhdeksi:

kill -9 $(pidof firefox)

Prosessien uudelleenlataus tappauskomennon avulla

Toinen yleinen tapaus kill on lähettää HUP signaali, joka käskee prosessit lataamaan asetukset uudelleen.

Esimerkiksi, jotta Nginx voidaan ladata uudelleen, sinun on lähetettävä signaali isäntäprosessille. Nginx- nginx.pid prosessitunnus löytyy nginx.pid tiedostosta, joka tyypillisesti sijaitsee hakemistossa /var/run .

Käytä cat löytääksesi isäntä PID:

cat /var/run/nginx.pid

30251

Kun olet löytänyt isäntä PID, lataa Nginx-asetukset uudelleen kirjoittamalla:

sudo kill -1 30251

Yllä oleva komento on suoritettava pääkäyttäjänä tai käyttäjänä, jolla on sudo-oikeudet.

johtopäätös

kill komentoa käytetään signaalin lähettämiseen prosesseille. Yleisimmin käytetty signaali on SIGKILL tai -9 , joka lopettaa annetut prosessit.

tappaa terminaali