Как остановить программу, работающую как демон

Надо надеяться, можно все еще загрузиться в однопользовательский режим, если проблема только с дисплеем. Иначе Вы загружаете живой CD, монтируете Ваш диск (диски) и затем chroot получить доступ к Вашей системе.

После этого первая вещь, которую необходимо сделать, состоит в том, чтобы проверить /var/log/pacman.log видеть, что, возможно, повредило Вашу систему. Я подозревал бы обновление xorg или ядро для порождения проблем как это. Что сделать, затем зависит полностью от пакета, который будет зафиксирован.

Простите, если я ошибаюсь, но возможно Вы пропустили экранное сообщение, что Pacman произвел, когда Вы выполнили обновление. Это обычно важно, особенно к прокручивающемуся дистрибутиву выпуска как Arch. Заключить ArchWiki в кавычки:

Важно, чтобы пользователи считали весь вывод информации pacman и использовали здравый смысл.

6
17.02.2012, 10:31
6 ответов

Не использовать kill -9! Эта команда предназначена, чтобы использоваться в некоторых определенных крайних случаях только.

Согласно странице справочника (на моем поле Solaris):

DESCRIPTION
 The kill utility sends a signal to the process or  processes
 specified by each pid operand.

 For each pid operand, the kill utility will perform  actions
 equivalent to the kill(2) function called with the following
 arguments:

 1.  The value of the pid operand will be  used  as  the  pid
     argument.

 2.  The sig argument  is  the  value  specified  by  the  -s
     option,  the  -signal_name option, or the -signal_number
     option, or, if none of these options  is  specified,  by
     SIGTERM.

 The signaled process must belong to the current user  unless
 the user is the super-user.

Когда Вы не укажете сигнала, уничтожение отправит SIGTERM (kill -15) к Вашему процессу. Существуют более агрессивные сигналы, которые можно отправить, которые менее сильны, чем SIGKILL (kill -9).

Почему избегают, уничтожают-9?

SIGKILL является очень сильным сигналом. Это не может быть поймано процессом, что означает, что процесс, который получает его, должен отбросить все немедленно и выход. Это не занимает время к, освобождает ресурсы, которые это заблокировало (как сетевые сокеты или файлы), ни сообщать другим процессам о выходе. Часто, это оставит Вашу машину в нестабильном состоянии. Проводя аналогию, Вы могли сказать, что уничтожение процесса с SIGKILL настолько же плохо как выключает машину с кнопкой питания (в противоположность shutdown команда).

Фактически, SIGKILL нужно избежать так, как Вы можете. Вместо этого как упомянуто в статье, предложено попробовать kill -2 и если это не работает kill -1.

Я видел, что люди мчатся в отправку SIGKILL все время (даже в ежедневных сценариях уборки!). Я ежедневно борюсь со своими товарищами по команде об этом. Не использовать kill -9 вслепую.

10
27.01.2020, 20:23
  • 1
    , я добавил бы условия к оператору. Не использовать kill -9 если Вы не попробовали другие соответствующие сигналы или если Вы не знаете то, что чисто последствия не разрешения того процесса завершиться, и они приемлемы. –  Shawn J. Goff 17.02.2012, 14:30
  • 2
    Да абсолютно. Вы не должны смущаться редактировать ответ и улучшать его. –  rahmu 17.02.2012, 16:13

Поскольку кажется что это iperf процесс не отвечает на Ваш сигнал "завершения" (сигнал по умолчанию sendby a kill <pid> команда). Это обычно означает, что процесс разрушается так или иначе или всунутый доступ ввода/вывода.

Просто необходимо быть более жестокими и отправить сигнал "УНИЧТОЖЕНИЯ":

kill -9 <pid>

Или

kill -KILL <pid>

Это завершит процесс, не ожидая его для надлежащего окончания.

2
27.01.2020, 20:23
  • 1
    , Если я не ошибаюсь, если процесс застревает во вводе-выводе, то ровен kill -9 не уничтожит его. –  bbaja42 17.02.2012, 12:10
  • 2
    , Используя который Вы правы, так застрявшие на вводе/выводе... не реальный ввод-вывод ;) –  Ouki 17.02.2012, 12:27

Хотя обычно не рекомендуемый, можно всегда обращаться к kill -9 <pid> действительно уничтожить процесс. Действительно поймите, однако мощное завершение работы процесса, подразумевая, что он корректно не выйдет.

1
27.01.2020, 20:23

использовать kill -9 <pid of iperf> уничтожить процесс. С количеством сигнала 9 (УНИЧТОЖАЮТ), уничтожение не может быть поймано процессом; используйте это для уничтожения процесса, который не завершает простое уничтожение.

1
27.01.2020, 20:23

Необходимо использовать команду уничтожения с-9 опциями.

$ kill -9 pid

Я отправляю сигнал SIGKILL уничтожить процесс, который является самым сильным сигналом всех.

0
27.01.2020, 20:23

вы можете использовать команду svc, которая используется для остановки служб демона

-2
27.01.2020, 20:23

Теги

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