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

Вы можете попробовать использовать изображение докеры ubuntu 16:04 с установленным pdftk для запуска pdftk:

1.Установить докер:

sudo apt install docker.io

2.Pull ubuntu 16.04 и запустите оболочку bash:

sudo docker run -it ubuntu:16.04 bash

3.Update и установите pdftk из приглашения контейнера:

apt update
apt install pdftk

4. На новом прогоне терминала:

sudo docker ps -a

5. Соедините изображение с помощью CONTAINER ID ubuntu: 16.04 для нового изображения с установленным pdftk:

sudo docker commit 7cc10568226c ubuntu_pdftk        # replace 7cc10568226c with CONTAINER ID

4.Создайте файл с именем «pdftk» в / usr / bin, а затем сделать его исполняемым (chmod + r / usr / bin / pdftk):

#!/bin/bash
PARAM="$@"
sudo docker run --name pdftk -it -v $PWD:/workdir$PWD -w /workdir$PWD ubuntu_pdftk bash -c "pdftk $PARAM && exit" && sudo docker rm pdftk

5.Call pdftk из вашего скрипта с параметрами, заключенными в "":

pdftk "file*.pdf output allfiles.pdf"

obs : для скриптов crontab вам нужно быть root и удалить 'sudo' из команд docker

1
задан 7 February 2013 в 06:27

13 ответов

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

39
ответ дан 25 May 2018 в 14:12
  • 1
    Я не думаю, что это имеет отношение к этому вопросу, вы используете sudo - OP не имеет таких привилегий, как упоминалось в вопросе. – pl1nk 25 June 2012 в 04:01
  • 2
    У ОП нет привилегий, отредактируйте свой ответ или он может быть удален или преобразован в комментарий как «не ответ». – ish 25 June 2012 в 11:28
  • 3
    Если у него нет привилегий, ему просто нужно убить & lt; pid & gt; или killall & lt; имя процесса & gt; Я просто использовал его в своей учетной записи не root, я бы не смог это сделать, если бы не этот ответ. – Shailyn Ortiz 27 January 2018 в 18:45

Попробуем что-то еще:

sudo apt-get install htop 

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

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

18
ответ дан 25 May 2018 в 14:12

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

ps -ax | grep application name 

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

kill -9 1317
12
ответ дан 25 May 2018 в 14:12

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

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

11
ответ дан 25 May 2018 в 14:12
  • 1
    Используйте его второй по частоте после того, как он понравится. +1 – Sergiy Kolodyazhnyy 3 May 2015 в 03:11
  • 2
    xkill не работает в этом случае ... – PythoNic 29 September 2015 в 15:22
  • 3
    @PythoNic, в каком случае это? – Alvar 1 October 2015 в 20:31
  • 4
    Он хочет убить не-оконный процесс, который также не связан с X-сервером, как мне кажется ... (Во всяком случае, хороший инструмент.) – PythoNic 2 October 2015 в 12:30

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

pkill -U username
6
ответ дан 25 May 2018 в 14:12

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

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 своим идентификатором процесса, тогда вы должны сделать: [ ! d7]

kill -1 7667

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

kill -2 7667

, работая до -9.

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

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

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

4
ответ дан 25 May 2018 в 14:12

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

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

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

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

kill PID_of_target_process

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

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

kill -KILL PID_of_target_process

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

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

2
ответ дан 25 May 2018 в 14:12

Я написал небольшой скрипт, который я написал, чтобы убить (в моем случае). 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 (это может быть изменено на ваш процесс), а затем передает эту строку на cut, которая затем считывает только PID и, наконец, использует этот PID в команде kill, чтобы убить его.

1
ответ дан 25 May 2018 в 14:12
  • 1
    Вы могли бы сбросить -l и запустить pgrep -u justin skype и убить: pkill -u justin skype (или pkill -KILL -u justin skype для отправки SIGKILL). – muru 13 February 2016 в 01:07

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

install htop

sudo apt-get install htop

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

1
ответ дан 25 May 2018 в 14:12

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

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

ps aux | -C 'filename'

или

ps -ef | -C 'filename'

или

ps aux | grep 'filename'

или

ps -ef | grep 'filename' 

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

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

kill pidnumber
0
ответ дан 25 May 2018 в 14:12

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

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

0
ответ дан 25 May 2018 в 14:12

Вот простой скрипт 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));
0
ответ дан 25 May 2018 в 14:12

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

-2
ответ дан 25 May 2018 в 14:12
  • 1
    -1 Это не сработает, так как демоны вроде smbd обычно не запускаются под управлением терминального сеанса. – David Foerster 2 February 2016 в 23:52

Другие вопросы по тегам:

Похожие вопросы: