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.

Nick Heiner
źródł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.

Wuffers
źródło
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.

fideli
źródło