Является ли команда «kill» для управления заданиями той же самой, что и команда «kill» для отправки сигнала процессу?

Является ли команда «kill» для управления заданиями той же самой, что и команда «kill» для отправки сигнала процессу?

В 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, который охватывает оба случая (но не уточняет, что и где реализовано).

Связанный контент