Как убить процессы в Ubuntu?

123

Как убить все процессы, запущенные моей собственной учетной записью без полномочий?

У меня есть некоторые вращающиеся процессы smbd, которые я вызвал на моем компьютере с Windows, и поэтому я подключился к серверу linux, и я хочу убить эти процессы прядения. У меня нет полномочий перезапускать службы или перезагружать компьютер.

    
задан djangofan 16.02.2012 в 23:49
источник

14 ответов

150

Чтобы убить все процессы, у которых есть разрешение на убийство, просто запустите команду

kill -15 -1 или kill -9 -1 в зависимости от желаемого поведения (используйте подробности man kill )

Чтобы убить определенный процесс, скажем, firefox, просто запустите

pkill firefox или killall firefox в зависимости от поведения, которое вы хотите: Что разница между "killall" и "pkill"?

Если вы хотите посмотреть, какие процессы работают, используйте команду

ps -ef

Если вы хотите просмотреть все процессы с помощью пользовательского bob, это может помочь

pgrep -l -u bob

или

ps -ef | grep bob
    
ответ дан ste_kwr 16.02.2012 в 23:58
источник
37

Используйте sudo kill <pid> или sudo killall <process-name>

    
ответ дан Chris Wayne 16.02.2012 в 23:50
16

Давайте попробуем что-нибудь еще:

sudo apt-get install htop 

Команда top является традиционным способом просмотра использования ресурсов вашей системы и просмотра процессов, которые занимают большинство системных ресурсов. В верхней части отображается список процессов, в которых используются самые популярные процессоры.

htop отображает ту же информацию с более понятным макетом. Он также позволяет вам выбирать процессы с помощью клавиш со стрелками и выполнять действия, например, убивать их или изменять их приоритет с помощью клавиш F .

    
ответ дан Fantomas 12.01.2014 в 04:41
12

Вы можете использовать

ps -ax | grep application name 

Если ваш поиск типа firefox в терминале, например ps -ax | grep firefox , он показывает идентификатор процесса соответствующего приложения. Вы можете остановить это приложение командой kill , если идентификатор процесса = 1317,

kill -9 1317
    
ответ дан Xman Classical 22.07.2014 в 06:21
11

Я бы использовал xkill . Введите xkill в терминал и щелкните в окне или введите xkill и идентификатор процесса, и он будет завершен.

Узнайте больше о xkill на x.org.

    
ответ дан Alvar 27.12.2013 в 21:36
6

Чтобы попытаться уничтожить все процессы, принадлежащие пользователю username , запустите:

pkill -U username
    
ответ дан user129146 07.02.2013 в 02:30
4

Я бы разбил вашу проблему на две части:

1) Как найти начатые мной процессы? Запустите это:

ps -u 'whoami'

whoami на всякий случай, если вы не знаете имя используемой вами учетной записи, иначе просто введите имя учетной записи без обратных кавычек.

В этом списке перечислены все процессы, которые могут быть удалены вашей учетной записью.

2) Команда ps отобразит номер процесса, TTY, время и CMD. Идентификатор процесса - это первый столбец. Используйте этот номер, чтобы убить процесс. Будьте осторожны, убивая процесс. Вы можете сломать что-то, если вы убьете неправильный процесс. Чтобы убить процесс, вы будете использовать команду kill , которая отправляет SIGNAL в этот процесс. Сигнал указывает, что должен делать . Например, отправка -1 в процесс потребует перезагрузки файла конфигурации; отправка -2 эквивалентна нажатию кнопки Control + C на этом процессе; -9 заставит ядро ​​отказаться от процесса, не передавая его процессу.

Предположим, что ps -u whoami возвращает что-то вроде

  PID TTY          TIME CMD
 4333 pts/1    00:00:00 fish
 4335 ?        00:00:00 fishd
 4816 ?        00:00:00 intellij
 4868 ?        00:50:42 java
 4939 ?        00:00:19 fsnotifier64
 7667 ?        02:49:08 firefox
 7698 ?        00:00:00 unity-webapps-s

И вы хотели убить процесс firefox по его идентификатору процесса, тогда вы бы сделали:

kill -1 7667

Затем вы повторно запустите ту же команду ps и убедитесь, что процесс все еще запущен. Если он все еще работает, выполните

kill -2 7667

работает до -9 .

Чтобы убить все процессы, запущенные вашей учетной записью, введите kill <level> -1 . То же, что и раньше: проделайте свой путь до -9 .

Если вы знаете название процесса, вы можете просто перейти на killall <processname> , где вы пытаетесь убить. Например: killall fish (рыба, в этом смысле, это Friendly Interactive Shell).

Документацию для killall можно найти здесь: Ссылка

    
ответ дан Alexandre Santos 04.05.2015 в 23:37
2

... Все процессы в Linux реагируют на сигналы. Сигналы представляют собой os-level способ сообщать программам о прекращении или изменении их поведения.

Как отправить сигналы процессов с помощью PID

Наиболее распространенным способом передачи сигналов программе является команда kill.

Как и следовало ожидать, функциональность по умолчанию этой утилиты заключается в попытке убить процесс:

kill PID_of_target_process

Это посылает сигнал TERM процессу. Сигнал TERM сообщает о завершении процесса. Это позволяет программе выполнить операции очистки и выйти плавно.

Если программа ошибочно работает и не выходит, когда задан сигнал TERM, мы можем эскалировать сигнал, передавая сигнал KILL:

kill -KILL PID_of_target_process

Это специальный сигнал, который не отправляется в программу.

Вместо этого он предоставляется ядру операционной системы, которое завершает процесс. Это используется для обхода программ, которые игнорируют переданные им сигналы ...

    
ответ дан jackal404258 03.05.2015 в 00:00
1

Я написал небольшой скрипт, который я написал, чтобы убить (в моем случае) Skype:

kill -s 9 'ps aux | grep skype | head -n 1 | cut -f4 -d" "'

Но я обнаружил, что столько, сколько это сработало, это не сработало на следующий день, потому что pid был другой длины, и там для количества пробелов было другое

Затем я наткнулся на этот сайт и попробовал

pgrep -l -u justin

, который удобно выводит процессы в формате

[pid] [name]

Итак, я скорректировал свой код в скрипте:

kill -s 9 'pgrep -l -u justin | grep skype | cut -f1 -d" "'

Что это делает, так это то, что все процессы justin запущены (которые могут быть изменены для любого имени пользователя) на grep , который ищет skype (это может быть изменено на ваш процесс), а затем каналы, которые line to cut , который затем считывает только PID и, наконец, использует этот PID в команде kill , чтобы убить его.

    
ответ дан justingiffard 27.12.2013 в 21:10
1

С помощью этого приложения вы можете просмотреть списки программ

установить htop

sudo apt-get install htop

для процесса процесса и уничтожения Вы можете установить его и просто удалить

    

ответ дан Reza Bojnordi 27.05.2017 в 12:21
0

Я использовал следующую процедуру, чтобы убить процесс в Ubuntu ::

Шаг 1. Получите pid процесса с помощью grep или вы можете использовать -C также ::

ps aux | -C 'filename'

или

ps -ef | -C 'filename'

или

ps aux | grep 'filename'

или

ps -ef | grep 'filename' 

Шаг 2: Обратите внимание на номер pid.

Шаг 3: Используйте команду «убить» вместе с номером pid как:

kill pidnumber
    
ответ дан harrypotter0 27.05.2017 в 11:46
0

Ctrl + Alt + Delete может быть настроен так, чтобы дать вам доступ к диспетчеру задач, из которого легко убить процессы с помощью нескольких кликов, а для меня - меньше необходимости запоминать команды, которые могут быть повреждены, если все сделано неправильно: / р>

Ссылка

    
ответ дан Cedric Eveleigh 27.05.2017 в 11:52
0

Вот простой скрипт python, который я написал, killProcess.py, который примет что-либо как ввод и убьет его.

Я написал этот скрипт, потому что у меня много процессов python или node, которые я хочу убивать индивидуально и программно. Я не могу использовать «killall python», потому что он остановит процессы, которые мне нужно продолжать.

Назовите файл «killProcess.py», а затем добавьте имя сценария, который хотите остановить. Например: python killProcess.py runnablePoller.py убьет файл runnablePoller.py

import os;
import sys;
for arg in sys.argv:
    if(arg!="killProcess.py"):
        process=arg;
        print(process);
processes =os.popen("ps -ef | grep "+process).read();
processes=processes.split("\n");
processes=processes[0].split(" ");
#print(processes);
for p in processes:
    try:
        pid=int(p);
        print(pid); 
        break;
    except:
        continue;

os.system("kill "+str(pid));
    
ответ дан K Mmmm 18.06.2017 в 19:39
-2

Сделайте ctrl + C, который убивает любую команду, например cat Надеюсь, это помогло вам:)

    
ответ дан wumof 31.01.2016 в 17:44