
В Linux вы можете сделать следующее:
kill 1
(или kill %1
)
Что означает «закрыть процессы вработа номер 1".
И вы можете сделать следующее:
kill 1234
Что означает «отправить SIGTERM
сигнал процессу с PID 1234».
Являются ли эти две kill
команды одной и той же командой или это две разные команды?
решение1
Я не уверен, что вы сможете это сделать kill 1
(точнее, вы можете попробовать, но вам не разрешат, если только вы не являетесь пользователем root, и тогда вас ждет сюрприз). 1
здесь всегда относится к процессу с идентификатором 1, который обычно равен init
(или какой-то его вариант).
Чтобы ответить на ваш вопрос, если вы находитесь в оболочке, которая поддерживает управление заданиями, kill
будет встроенная оболочка, обрабатывающая оба случая (управление заданиями и процессами). См. напримерkill
Команда Баша.
Если вы находитесь в оболочке, которая не поддерживает управление заданиями (есть ли такие?), kill
в системе обычно будет двоичный файл /bin/kill
; см. напримерutil-linux
командаkill
. Даже в оболочке со встроенной kill
командой вы можете получить к ней доступ, например, указав полный путь. Эта kill
команда также доступна без оболочки (для использования из другой программы).
Смотрите такжеОпределение POSIXkill
, который охватывает оба случая (но не уточняет, что и где реализовано).