Я понимаю, что это не по теме, я нигде не мог найти в Интернете, и я подумал, может быть, гуру программирования в сообществе могут это знать.
Я обычно использую
kill -9 pid
убить работу. Я всегда задавался вопросом о происхождении 9. Я поискал его в Интернете, и там написано
«9 означает сигнал KILL, который невозможно уловить или игнорировать. Другими словами, он будет сигнализировать процессу (некоторому запущенному приложению) о немедленном завершении работы» (источник: http://wiki.answers.com/Q/What_does_kill_-9_do_in_unix_in_its_entirety )
Но почему 9? а что насчет других чисел? есть ли историческое значение или из-за архитектуры Unix?
Ответы:
См. Статью в Википедии о сигналах Unix для получения списка других сигналов. SIGKILL случайно получил цифру 9.
Вы также можете использовать мнемонику, как числа:
источник
Первыми они подали еще 8 сигналов.
источник
Думаю, лучший ответ здесь такой:
Что касается «значимости» 9 ... я бы сказал, что, наверное, нет. Согласно интерфейсу программирования Linux (стр. 388) :
источник
Для начала вам нужно узнать, что такое сигналы в Unix-подобных системах (это займет всего несколько минут).
Мы можем использовать несколько типов сигналов - чтобы получить полный список всех доступных / возможных сигналов, используйте команду « $ kill -l »:
В приведенном выше выводе ясно видно, что каждый сигнал имеет связанный с ним « номер сигнала » (например, 1, 2, 3) и « имя сигнала » (например, SIGUP, SIGINT, SIGQUIT). Чтобы узнать, что делает каждый сигнал, перейдите по этой ссылке .
Наконец, подойдя к вопросу «Почему число 9 в команде kill -9 »:
Есть несколько методов передачи сигналов программе или сценарию. Один из часто используемых методов отправки сигнала - это использование команды kill - основной синтаксис:
Где сигнал - это номер или имя сигнала, за которым следует идентификатор процесса (pid), которому будет отправлен сигнал.
Например - -SIGKILL (или -9 ), сигнал немедленно убивает процесс.
и
обе команды - это одно и то же, т.е. выше мы использовали «имя сигнала», а позже мы использовали «номер сигнала».
Вердикт : есть открытый выбор, использовать ли «имя сигнала» или «номер сигнала» с командой kill .
источник
Это отсылка к «Revoulution 9» группы Beatles. Коллекция связанных вместе звуковых клипов и найденных шумов, эта запись показывает, что Джон Леннон снова и снова повторяет "Number 9, Number 9 ...". Кроме того, эта песня привлекла дополнительное внимание в 1969 году, когда было обнаружено, что при воспроизведении в обратном направлении Джон кажется говорить: "Заведи меня, мертвец ..."
Следовательно, девятому сигналу суждено было стать самым смертоносным из сигналов уничтожения.
источник
Есть очень длинный список сигналов Unix, который вы можете просмотреть в Википедии . Несколько сбивает с толку, что вы действительно можете использовать
kill
для отправки любого сигнала процессу. Например,kill -SIGSTOP 12345
заставляет процесс 12345 приостановить свое выполнение, аkill -SIGCONT 12345
дает ему команду возобновить. Несколько менее загадочная версияkill -9
являетсяkill -SIGKILL
.источник
kill
. Вероятно, потому что поведение по умолчанию для большей части исходного набора сигналов (номера от 1 до 15) заключалось в завершении процесса.Я не думаю, что число 9 имеет какое-то значение. Кроме того, вопреки распространенному мнению,
kill
оно используется не только для уничтожения процессов, но и для отправки сигнала процессу. Если вам действительно интересно, вы можете прочитать здесь и здесь .источник
почему kill -9: число 9 в списке сигналов было выбрано как SIGKILL в отношении «убить 9 жизней кошки».
источник
SIGKILL
используйте, чтобы убить процесс.SIGKILL
нельзя игнорировать или обрабатывать. В линуксе способы датьSIGKILL
.источник
Введите команду kill -l в вашей оболочке
вы обнаружите, что под 9-м номером [ 9) SIGKILL ], поэтому можно использовать kill -9 или kill -SIGKILL
SIGKILL - это верный сигнал уничтожения, его нельзя переместить, игнорировать или обрабатывать. Он всегда работает со своим поведением по умолчанию, которое убивает процесс.
источник
Это
-9
номер_сигнала и указывает, что отправленное сообщение аннулирования должно иметь тип KILL (не улавливаемый, не игнорируемый).То же, что и ниже.
Без указания signal_number значение по умолчанию -15, что является TERM (сигнал завершения программного обеспечения). Набор
kill <pid>
такой же, какkill -15 <pid>
.источник
Оба они такие же, как kill -sigkill processID, kill -9 processID. В основном это для принудительного прекращения процесса.
источник
есть процесс, который нельзя убить, например "kill% 1". если нам нужно завершить этот процесс, используется специальная команда, чтобы убить этот процесс, который является kill -9. например, откройте vim и остановитесь, если с помощью ctrl + z затем увидите задания и после применения процесса kill этот процесс не будет завершен, поэтому здесь мы используем команду kill -9 для завершения.
источник