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

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

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


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

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  

Используйте sudo kill или sudo killall

3


Давайте попробуем еще кое-что:

  sudo apt-get install htop  

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

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

0


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

  ps -ax |  grep application name  

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

  kill -9 1317  


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

Подробнее о xkill на x.org.

4


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

  pkill -U username  


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

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

  ps -u `whoami`  

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

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

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

Предположим, что ps -u whoami вернул что-то вроде

  PID TTY TIME CMD 4333 pts/1 00  : 00: 00 рыба 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 -1 . То же, что и раньше: увеличивайте число до -9 .

Если вы знаете имя процесса, вы можете просто перейти к killall , где это то, что вы пытаетесь убить. Например: killall fish (в этом смысле рыба — это дружественная интерактивная оболочка).

Документация для killall может можно найти здесь: http://manpages.ubuntu.com/manpages/hardy/man1/killall.1. html


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

install htop

  sudo apt-get install htop  

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


… Все процессы в Linux реагируют на сигналы. Сигналы — это способ на уровне операционной системы сообщить программам о завершении или изменении их поведения.

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

Самый распространенный способ передачи сигналов в программа использует команду kill.

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

   kill PID_of_target_process  

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

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

  kill -KILL PID_of_target_process  

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

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

0


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

  kill -s 9 `ps aux  |  grep skype |  голова -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 (это может быть изменено на любого пользователя name) в grep , который ищет skype (это можно изменить для вашего процесса), а затем направляет эту строку в cut , который затем читает только PID и, наконец, использует этот PID в команде kill , чтобы убить его..

2


Я использовал следующие процедура для уничтожения процесса в Ubuntu ::

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

  ps aux |  -C 'filename'  

или

  ps -ef |  -C 'filename'  

или

  ps aux |  grep 'filename'  

или

  ps -ef |  grep 'filename'  

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

Шаг 3: Используйте команду ‘kill’ вместе с номером pid как:

  kill pidnumber  


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

http://ubuntuhandbook.org/index.php/2013 /07/use-ctrl-alt-del-task-manager-ubuntu/

https://www.itsmarttricks.com/a-guide-to-kill-pkill-and-killall- команды для остановки процесса в linux-kill-process-linux/



Как завершить фоновый процесс?

Я запустил wget на удаленном компьютере. машина в фоновом режиме с помощью & . Вдруг перестает скачиваться. Я хочу завершить его процесс, а затем повторно запустить команду. Как мне его закрыть?

Я не закрыл окно его оболочки. Но, как вы знаете, использование Ctrl + C и Ctrl + Z .


Есть много способов сделать это.

Метод №1 — ps

Вы можете использовать команду ps , чтобы найти идентификатор процесса для этого процесса, а затем использовать PID, чтобы убить процесс.

Пример

  $ ps -eaf |  grep [w] get saml 1713 1709 0 Dec10 pts/0 00:00:00 wget ... $ kill 1713  

Метод № 2 — pgrep

Вы также можете найти идентификатор процесса с помощью pgrep .

Пример

  $ pgrep wget1234 $ kill  1234  

Метод № 3 — pkill

Если вы уверены, что это единственный wget , который вы запустили вы можете использовать команду pkill , чтобы убить задание по имени.

Пример

  $ pkill wget  

Метод №4 — задания

Если вы находитесь в той же оболочке, из которой вы выполняли задание, это теперь фоновое задание. Вы можете проверить, работает ли он по-прежнему, используя команду jobs , а также убить его по номеру задания.

Пример

My поддельная работа, сон .

  $ sleep 100 & [1] 4542  

Найдите номер задания. ПРИМЕЧАНИЕ. число 4542 — это идентификатор процесса.

  $ jobs [1] + Running sleep 100 & $ kill% 1 [1]  + Завершение сна 100  

Метод № 5 — fg

Вы можете вернуть фоновое задание на передний план с помощью fg команда.

Пример

Поддельное задание, sleep .

  $ sleep 100 & [1] 4650  

Получить номер задания.

  $ jobs [1] + Running sleep  100 &  

Верните задание № 1 на передний план, а затем используйте Ctrl + C .

  $ fg 1sleep 100 ^ C $  

В bash вы можете использовать fg , чтобы вывести задание на передний план, а затем использовать Ctrl + C

Или укажите процесс в фоновом режиме с помощью jobs , а затем выполните

  kill% 1   

(где 1 заменяется числом, которое вам дал вакансии )


Вы также можете использовать kill $! , чтобы убить последнее фоновое задание.

1


РЕДАКТИРОВАТЬ: находясь на переднем плане, вы можете Ctrl + C , или, как упоминает @Zelda, kill с помощью ‘% x’, где ‘x’ — номер задания, отправит сигнал по умолчанию (скорее всего, SIGTERM в случае Linux).

просто введите fg , чтобы вывести его на передний план, если это был последний процесс, который вы выполняли в фоновом режиме (с ‘&’).

Если он не был последним, введите: jobs и найдите «номер вакансии», представленный в «[]». Затем просто введите:

  fg 2  

.. где «2» — номер задания, например:

  foo @ bar: ~/junk/books $ jobs [1] + Запуск okular how_to_cook_a_turkey.pdf & foo @ bar: ~/junk/books $ fg 1okular how_to_cook_a_turkey.pdf  


Правильный способ — ввести jobs , а затем использовать номер задания, чтобы убить его. Чтобы использовать pid, чтобы убить его, вам нужно вывести его на передний план, как указано в первом ответе.

Попробуйте это

  ~/Desktop $ sleep 1000 & [1] 7056 ~/Desktop $ jobs [1] + Running sleep 1000 &/ Desktop $ kill% 1 # (% 1 - номер задания)  

Если вы запускаете задание сразу после его завершения, вы должны увидеть это

  Desktop $ jobs [1] + Прерванный сон 1000  


Единственное, чего я здесь не вижу и который считаю очень полезным, особенно при тестировании команд, — это pidof . Вы можете использовать pidof [command] , чтобы найти идентификатор процесса, который выполняется в данный момент. Мне это нравится, потому что он позволяет мне быстро найти идентификатор нужной мне команды, который обычно я только что вызвал.

Когда у вас есть pid, вы можете просто убить процесс. Он позволяет создавать простые сценарии для завершения процесса, только если он в данный момент запущен.

1


Типичным примером является инструмент стресс . Допустим, вы выполнили следующее:

  $ stress -c 4 -m 4  

и закрыли окно терминала. Процесс продолжит поглощать ваши ресурсы в фоновом режиме.

Я ее делаю:

  $ x = `pgrep stress`;  sudo kill -9 $ x  

pgrep перечисляет PID подчиненного процесса и сохраняет его в переменной x который затем используется kill -9 для его завершения.


в последней остановке bash процесс (Ctrl-Z), который вы убьете:

  kill %% kill -9 %%  

или, если хотите выберите, используйте:

jobs

затем:

kill% N

как kill% 2


Самый простой способ — использовать флаг -9 в kill код> команда

  user @ host:/path> jobs [1] + Запуск/usr/home/script1.sh $ i & user @ host:/path> fg/usr /home/script1.sh $ i ^ C [1] + Остановлен/usr/home/script1.sh $ iuser @ host:/path> kill -9% 1 [1] + Остановлен/usr/home/script1.sh $  iuser @ host:/path> [1] + Killed/usr/home/script1.sh $ iuser @ host:/path> user @ host:/path> jobsuser @ host:/path>  

Оцените статью
clickpad.ru
Добавить комментарий