Каковы различные сигналы убийства htop?
Я недавно начал использовать htop
и мне нужно было убить процессы, но когда нажимал F9 на процессе, он давал мне этот список опций, я просто выбрал тот, который выбран по умолчанию, но я не знаю, что это на самом деле делает, хотя похоже на работу
Так что на самом деле мой вопрос: что это за разные варианты, и какой лучше использовать, чтобы убить процесс?
2 ответа
Первая попытка
SIGTERM 15 Term Termination signal
если это не сработает
SIGKILL 9 Term Kill signal
От man 7 signal
First the signals described in the original POSIX.1-1990 standard.
Signal Value Action Comment
──────────────────────────────────────────────────────────────────────
SIGHUP 1 Term Hangup detected on controlling terminal
or death of controlling process
SIGINT 2 Term Interrupt from keyboard
SIGQUIT 3 Core Quit from keyboard
SIGILL 4 Core Illegal Instruction
SIGABRT 6 Core Abort signal from abort(3)
SIGFPE 8 Core Floating point exception
SIGKILL 9 Term Kill signal
SIGSEGV 11 Core Invalid memory reference
SIGPIPE 13 Term Broken pipe: write to pipe with no
readers
SIGALRM 14 Term Timer signal from alarm(2)
SIGTERM 15 Term Termination signal
SIGUSR1 30,10,16 Term User-defined signal 1
SIGUSR2 31,12,17 Term User-defined signal 2
SIGCHLD 20,17,18 Ign Child stopped or terminated
SIGCONT 19,18,25 Cont Continue if stopped
SIGSTOP 17,19,23 Stop Stop process
SIGTSTP 18,20,24 Stop Stop typed at terminal
SIGTTIN 21,21,26 Stop Terminal input for background process
SIGTTOU 22,22,27 Stop Terminal output for background process
The signals SIGKILL and SIGSTOP cannot be caught, blocked, or
ignored.
Next the signals not in the POSIX.1-1990 standard but described in
SUSv2 and POSIX.1-2001.
Signal Value Action Comment
────────────────────────────────────────────────────────────────────
SIGBUS 10,7,10 Core Bus error (bad memory access)
SIGPOLL Term Pollable event (Sys V).
Synonym for SIGIO
SIGPROF 27,27,29 Term Profiling timer expired
SIGSYS 12,31,12 Core Bad argument to routine (SVr4)
SIGTRAP 5 Core Trace/breakpoint trap
SIGURG 16,23,21 Ign Urgent condition on socket (4.2BSD)
SIGVTALRM 26,26,28 Term Virtual alarm clock (4.2BSD)
SIGXCPU 24,24,30 Core CPU time limit exceeded (4.2BSD)
SIGXFSZ 25,25,31 Core File size limit exceeded (4.2BSD)
Это технологические сигналы в целом, а не только связанные с htop
Вы можете перечислить все сигналы с помощью команды
kill -l
Например источник:
-1 или -HUP - этот аргумент заставляет kill отправлять процессам сигнал "Hang Up". Это, вероятно, происходит из эпохи модема / дозвона. Процессы должны быть запрограммированы, чтобы фактически слушать этот процесс и что-то с ним делать. Большинство демонов запрограммировано перечитывать свою конфигурацию, когда они получают такой сигнал. Тем не мение; Скорее всего, это самый безопасный сигнал убийства, он не должен ничего препятствовать.
-2 или -SIGINT - это то же самое, что запуск некоторой программы и нажатие CTRL+C во время выполнения. Большинство программ остановятся, вы можете потерять данные.
-9 или -KILL - ядро отпустит процесс, не сообщая об этом. Такое нечистое убийство может привести к потере данных. Это самый "тяжелый", "грубый" и самый небезопасный доступный сигнал уничтожения, и его следует использовать только для остановки чего-то, что кажется неудержимым.
-15 или -TERM - Скажите процессу прекратить все, что он делает, и закончить сам. Когда вы не указываете какой-либо сигнал, этот сигнал используется. Это должно быть достаточно безопасно для выполнения, но лучше начинать с "-1" или "-HUP".
Список из signal.h
файл:
+--------------------+------------------+
* | POSIX signal | default action |
* +--------------------+------------------+
* | SIGHUP | terminate |
* | SIGINT | terminate |
* | SIGQUIT | coredump |
* | SIGILL | coredump |
* | SIGTRAP | coredump |
* | SIGABRT/SIGIOT | coredump |
* | SIGBUS | coredump |
* | SIGFPE | coredump |
* | SIGKILL | terminate(+) |
* | SIGUSR1 | terminate |
* | SIGSEGV | coredump |
* | SIGUSR2 | terminate |
* | SIGPIPE | terminate |
* | SIGALRM | terminate |
* | SIGTERM | terminate |
* | SIGCHLD | ignore |
* | SIGCONT | ignore(*) |
* | SIGSTOP | stop(*)(+) |
* | SIGTSTP | stop(*) |
* | SIGTTIN | stop(*) |
* | SIGTTOU | stop(*) |
* | SIGURG | ignore |
* | SIGXCPU | coredump |
* | SIGXFSZ | coredump |
* | SIGVTALRM | terminate |
* | SIGPROF | terminate |
* | SIGPOLL/SIGIO | terminate |
* | SIGSYS/SIGUNUSED | coredump |
* | SIGSTKFLT | terminate |
* | SIGWINCH | ignore |
* | SIGPWR | terminate |
* | SIGRTMIN-SIGRTMAX | terminate |
* +--------------------+------------------+
* | non-POSIX signal | default action |
* +--------------------+------------------+
* | SIGEMT | coredump |
* +--------------------+------------------+
далее читайте:
man signal
,man 2 signal
,man 7 signal
,man kill
- http://man7.org/linux/man-pages/man7/signal.7.html
- http://lasr.cs.ucla.edu/vahab/resources/signals.html
- http://www.linuxprogrammingblog.com/all-about-linux-signals