Zabicie pracy w Ubuntu


22

To prawdopodobnie często zadawane pytanie, ale nie udało mi się znaleźć dobrej dokumentacji.

Mam zadania uruchomione w moim systemie:

foo@fooBox:~/tmp$ jobs
[1]+  Stopped                 foo bar baz

Jak mogę zabić ten proces? Próbowałem różnych poleceń kill 1, ale to nie zadziałało.


alternatywnie, $ fg [enter] [ctrl-c]: p
— bubu

@bubu: To nie zadziała w przypadku niektórych programów, które przechwytują SIGINT, takich jak vim.
— Wuffers

@Mark Szymański Wiedziałem, wiedziałem: p
— bubu

Odpowiedzi:


32

Możesz użyć metody sugerowanej przez @fideli lub możesz użyć killpolecenia w następujący sposób:

kill %1

Zabije to pierwsze zawieszone polecenie. Możesz również znaleźć listę zawieszonych poleceń, takich jak:

jobs

i zapewni takie dane wyjściowe:

[1]+  Stopped                 yes

Jeśli masz wiele zatrzymane pracy, liczba w nawiasach ( [1]) będzie liczba miejsc pracy, jedna po podasz %w killpoleceniu.


To jest świetne! Nauczyłem się czegoś nowego kill.
— fideli

1
Dlaczego to dostaję -bash: kill: (3593) - Operation not permitted. Kiedy używam go z sudo, dostaję tokill: %1: invalid process id
— CMCDragonkai

1
@CMCDragonkai Wystąpiła sytuacja, w której uruchomione polecenie jest teraz własnością innego użytkownika, ponieważ go użyłeś sudo, więc nie możesz go zabić, ale uruchomienie killprzy użyciu sudooznacza, że ​​nie masz już dostępu do listy zadań użytkownika (spróbuj bieganie, sudo jobsaby zobaczyć, co mam na myśli). Zamiast tego, ponieważ masz teraz PID, po prostu uruchom sudo kill 3593.
— morloch,

Jak proces w tle może być własnością innego użytkownika?
— CMCDragonkai

6

Po uruchomieniu ps axotrzymasz listę wszystkich uruchomionych procesów. Poszukaj tego, którego chcesz zabić, i zanotuj liczbę w PIDkolumnie. Na przykład powiedz, że był to numer 10203, a następnie uruchom:

kill 10203

Możesz także uruchomić, ps ax | grep fooaby znaleźć dokładnie ten program, którego szukasz. Wreszcie możesz uruchomić:

killall foo

zabić wszystkie przypadki foo.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.