Prosessin tappaminen on joskus ainoa tapa päästä eroon siitä. Kovasta nimestä huolimatta prosessin "tappaminen" tarkoittaa vain "pakottamista lopettamaan". Näin voit tehdä sen Linux- tai macOS-komentoriviltä.
Mikä on prosessi?
Suoritettavat ohjelmat, kuten selain, työpöytäympäristöön liittyvät taustaprosessit ja Linux-järjestelmäpalvelut ovat kaikki prosesseja.
Voit yhdistää prosessit kahteen ryhmään:
- Etualan prosessit ovat käyttäjän käynnistämiä tai käynnistämiä. Ne voivat olla pääteikkunassa tai ne voivat olla graafisia sovelluksia.
- Taustaprosessit ovat kaikki prosesseja, jotka käynnistetään automaattisesti ja joilla ei ole mitään vuorovaikutusta käyttäjien kanssa. He eivät odota käyttäjien panosta eivätkä esitä tuloksia tai tuloksia heille. Taustaprosessit ovat asioita, kuten palvelut ja demonit.
Jos etualan prosessit ovat teatterihenkilöstön ja näyttelijöiden edessä, taustaprosessit ovat kulissien takana -tiimi.
Kun prosessit toimivat väärin tai ne eivät toimi oikein, ne voivat aiheuttaa liian paljon suorittimen aikaa, kuluttaa RAM-muistia tai siirtyä tiukkaan laskentapiiriin ja tulla vastaamatta. Graafiset sovellukset voivat kieltäytyä vastaamasta hiiren napsautuksiin. Pääteohjelmat eivät ehkä koskaan palauta komentokehotteeseen.
Inhimillinen vastaus
Prosessin "tappaminen" tarkoittaa vain prosessin pakottamista lopettamaan. Tämä voi olla tarpeen, jos prosessi kieltäytyy vastaamasta.
Linux tarjoaa
tappaa
,
pkill
ja
tapa kaikki
komennot, jotta voit tehdä juuri sen. Näitä komentoja voidaan käyttää minkä tahansa tyyppisen prosessin, graafisen tai komentorivin, etualan tai taustan kanssa.
Tapokomento
Käyttää
tappaa
, sinun on tiedettävä lopetettavan prosessin prosessitunnus (PID).
ps
komentoa voidaan käyttää etsimään prosessin PID.
Olla
ps
etsi kaikki prosessit käyttävät
-On
(kaikki prosessit) -vaihtoehto. Lähdön läpivienti
Vähemmän
on suositeltavaa, sitä tulee olemaan melko vähän. Tyyppi
ps
, tila,
-On
, tila,
|
(putkimerkki), toinen välilyönti ja kirjoita sitten
Vähemmän
. Suorita komento painamalla Enter-näppäintä.
ps -e | less
Tämä antaa sinulle prosessiluettelon, joka näyttää samanlaiselta kuin alla oleva kuvakaappaus. Voit etsiä eteenpäin
Vähemmän
käyttämällä
/
-näppäintä ja voit etsiä taaksepäin
?
avain.
Palaa lähtöön kiinnostavasta prosessista
ps
kautta
pito
ja määritä prosessin nimi tai sen osa.
ps -e | grep shutter
Kun olet löytänyt lopetettavan prosessin PID-tunnuksen, välitä se
tappaa
komento parametrina. Voit lopettaa
sulkija
edellisen komennon tunnistaman prosessin, käytä tätä komentoa:
tappaa 2099
tappaa
komento on hiljainen salamurhaaja - se ei anna sinulle palautetta, jos se onnistui.
Pkill-komento
pkill
-komennon avulla voit tappaa prosessin - tai prosessit - nimellä. Sinun ei tarvitse tunnistaa prosessia PID: n avulla. Käyttää
pkill
annat hakutermin, joka
pkill
käyttää tarkistamaan käynnissä olevien prosessien luettelon. Yhdistämisprosessit lopetetaan. Joten sinun on oltava positiivinen, että hakutermi on kirjoitettu oikein.
Turvaverkkona voit käyttää
pgrep
komento
ennen
käytät
pkill
komento.
pgrep
komento hyväksyy myös hakutermin. Siinä luetellaan kunkin hakutermiä vastaavan prosessin PID. Tämä on turvallista, koska
pgrep
ei anna mitään tapposignaalia prosesseille, ja jos kirjoitat väärin hakutermin, et tappaa toista prosessia vahingossa. Voit varmistaa, että hakutermi on oikein harkittu, ennen kuin välität sen
pkill
. Molemmat
pkill
ja
pgrep
käsittele hakutermiä samalla tavalla. Heidän kohtelu on niin samanlainen kuin he
jaa sama man-sivu
.
Oletetaan, että nimessä on prosessi, jonka nimessä on "subq". Käytämme
ps -u dave | grep
käsky kurkistaa verhon taakse. Voit nähdä, että "subq" vastaa tätä prosessia ja tätä prosessia yksin. Se oli vain niin, että näet prosessin koko nimen.
ps -u dave | grep subq
Oletetaan käyttäjämme
ei ole
tehnyt niin; he vain tietävät, että prosessin nimi sisältää alaosan "subq". He käyttävät
pgrep
tarkistaa, että hakutermillä on vain yksi vastaavuus. Sitten he käyttävät kyseistä hakutermiä
pkill
.
pgrep subq
pkill subq
Voit käyttää
pkill
tappaa useita prosesseja kerralla. Täällä käyttäjä juoksee
pgrep
tarkistaa, kuinka monta prosessia Chrome on käynnistänyt. He käyttävät
pkill
tappaa heidät kaikki. Sitten he tarkistavat
pgrep
että ne kaikki on poistettu.
pgrep kromi
pkill kromi
pgrep kromi
Jos useita samannimisiä prosesseja on käynnissä, mutta et halua tappaa niitä kaikkia, voit käyttää
pgrep
kanssa
-f
(komentorivi) -vaihtoehto prosessin tunnistamiseksi. Yksinkertainen esimerkki olisi kaksi
ping
prosessit. Haluat tappaa yhden heistä, mutta et toisen. Voit käyttää niiden komentorivejä erottamaan ne toisistaan. Huomaa lainausmerkkien käyttö komentoriviparametrin käärimiseksi.
pgrep -f "ping 192.168.4.22"
pkill -f "ping 192.168.4.22"
Killall-komento
Varoitus
: Solaris- ja OpenIndiana-käyttöjärjestelmissä
tapa kaikki
komento tulee
tappaa kaikki sinulle kuuluvat prosessit
. Jos olet root tai jos olet antanut
sudo killall
käynnistät tietokoneen uudelleen! Tämän artikkelin tutkimuksen aikana tämä käyttäytyminen vahvistettiin OpenIndiana Hipster 2018.10: n uusimmalla versiolla.
tapa kaikki
komento
toimii samalla tavalla
että
pkill
komennolla, mutta tietyllä erolla. Sen sijaan, että välität hakutermin komennolle, sinun on annettava tarkka prosessin nimi.
Et voi antaa osittaista vastaavuutta prosessin nimelle. sinun on annettava koko prosessin nimi kuvan osoittamalla tavalla:
killall shutt
killall-suljin
-Y
(nuorempi kuin) -vaihtoehdon avulla voit tappaa käynnissä olevat prosessit
Vähemmän
kuin tietyn ajanjakson. Ajanjakso annetaan numeroina, jota seuraa yksi näistä yksiköistä:
- s (sekuntia)
- m (minuuttia)
- h (tuntia)
- d (päivää)
- w (viikkoa)
- M (kuukaudet, huomautus, iso kirjain “M”)
- y (vuotta)
Tapaa prosessi nimeltä
äiti
joka on juuri käynnistetty ja jättänyt kaikki vanhemmat esiintymät
äiti
käynnissä, voit käyttää seuraavia parametreja
tapa kaikki
, jos olisit reagoinut kahden minuutin kuluessa:
Minimoi minun tai minä
- The
(vanhempi kuin) -vaihtoehdon avulla voit tappaa prosessit, jotka ovat olleet käynnissä yli tietyn ajan. Tämä komento tappaa kaikki
ssh
yli vuorokauden ajan olleet yhteydet:
killall -o 1d sshd
Älä ole liian laukaista onnellinen
Näiden komentojen avulla voit tunnistaa ja lopettaa virheelliset prosessit tarkasti ja turvallisesti oikein.
Ole aina varovainen. Ensinnäkin varmista, että tapa, jonka olet tappamassa, on todella haluamasi. Toiseksi, tarkista kaksinkertaisesti - ole varovainen ja varmista, että kohdennettu prosessi on se, jonka haluat lopettaa. Jatka lopettamalla prosessi, kun olet tyytyväinen.