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

Существует много различных способов сделать это.

Командная строка

Необходимо не обязательно 'отформатировать' (т.е. сделать файловую систему — Вы не можете отформатировать карты с интерфейсом USB в, исправляет значение слова), палка, если Вы просто хотите удалить все файлы.

Принятие палки смонтировано под /media/something, можно сказать:

sudo rm -rf /media/something/*

Вас не попросят подтвердить! Это не коснется скрытых файлов (папки корзины из Windows или Mac, и т.д.).

Если Вы хотите нетронутую файловую систему, удостоверьтесь, что файловая система размонтирована сначала:

sudo umount /dev/whatever_the_device_is
sudo mkfs.vfat -n "Volume Label" /dev/whatever_the_device_is

Это сделает файловую систему FAT. Если Вам нужна файловая система NTFS, всегда существует mkfs.ntfs, но необходимо знать, что некоторые реализации являются багги. Это зависит от Вашего распределения и насколько недавний это.

KDE

Разожгите менеджера по Разделу KDE (если у Вас нет его, имя пакета Debian/Ubuntu является немного нестандартным partitionmanager). Сделайте очевидную вещь.

Gnome

Используйте Дисковую утилиту Gnome (Палимпсест). Это довольно тривиально для использования: просто выберите свою Карту памяти слева. Если это уже имеет раздел, нажмите кнопку 'Format'. Иначе существует кнопка 'Format Drive', которая сделает все для Вас.

Ubuntu 11

Попросите, чтобы Ubuntu имела этот точный вопрос, уже отвеченный: Как отформатировать Карту памяти или внешний диск в 11,10? — отмечают, как это просто обходит Вас посредством использования Написанной поверх Дисковой утилиты.

Все остальное

Мой собственный любимый инструмент GUI для этого задания является GParted. Это делает все, в чем Вы нуждаетесь (кроме, к сожалению, LVM и шифрование), и это удобно для пользователя для начальной загрузки.

1
16.06.2013, 03:43
4 ответа

Если Вы хотите уничтожить процесс оболочки и какой-либо другой процесс, он метал икру, лучше всего должен, вероятно, запустить новую группу процесса (setpgid() в ребенке после fork() прежде, чем работать execve() на сценарии), и уничтожают группу процесса с kill(-pid) где pid возвращаемое значение fork() в родителе.

При вызове setpgid() не опция, можно все еще сделать это как:

Вместо:

run("your-script its args");

Сделайте:

run("set -m; trap 'kill %' TERM; your-script its args & wait")
1
27.01.2020, 23:29

Обычно, каждый был бы Ctrl+C на оболочке вызова / уничтожают процесс от родительского процесса путем отправки сигнала через Process.destroy() (Java).

Аккуратный инструмент для таких задач pkill, который может уничтожить процессы шаблоном, например.

pkill ping

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

Бонусная подсказка: использовать pgrep -fl ping чтобы перечислить соответствие процессам, удостовериться, Вы хотите уничтожить всех их - потому что, работая как корень, pkill ssh также уничтожит Ваш sshd и может заблокировать Вас. Так же в особенности, когда выполнение как корень - которого необходимо избежать так или иначе - проверяет дважды с pgrep.

2
27.01.2020, 23:29
  • 1
    pkill опасен когда-то. Например, если Вы захотите уничтожить соединение SSH, то pkill ssh уничтожит sshd и вышибет Вас из Вашего сервера (если Вы были зарегистрированы как корень). –   11.06.2013, 12:14
  • 2
    Не так как пользователь, с безопасным шаблоном такой как ping когда Вы не знаете свой путь вокруг так или иначе.;-) Но да, лучше тестировать с pgrep сначала. –  Has QUIT--Anony-Mousse 11.06.2013, 12:15
  • 3
    pkill ping уничтожает любой процесс, имя процесса которого содержит ping (более точно, что соответствие ping регулярное выражение). pkill -x ping уничтожит процессы, имя процесса которых ping, но все еще который уничтожает весь ping процессы, не только тот Вы запустили. –  Stéphane Chazelas 11.06.2013, 17:15

Получите идентификатор процесса, как Вы записали:

ps -ef|grep pingIP |grep -v 'grep pingIP'

и затем уничтожьте дочернее использование процесса

pkill -P process-id
0
27.01.2020, 23:29
  • 1
    Почему этот взлом с grep -v grep? АЙ. man pkill! (Намного более умные решения были несколько отправленных часы назад!) –  Has QUIT--Anony-Mousse 11.06.2013, 15:37
  • 2
    Согласитесь, но это не имеет значения. Я только что скопировал его с 'sraina' вопроса. pkill-P является сущностью. –  Krzysztof Księżyk 12.06.2013, 13:06

Используйте killall. Для напр. "killall scriptname". killall уничтожает процесс по имени. Дополнительно можно также выпустить сигнал как. SIGKILL, SIGSTOP и т.д.

0
27.01.2020, 23:29
  • 1
    В некоторых системах это действительно уничтожает все процессы. –  jordanm 11.06.2013, 17:24

Теги

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