Использование команды kill в Ubuntu

Ядро Linux и пользовательское пространство дистрибутива Linux, в котором исторически доминировали пользовательские инструменты, разработанные в рамках проекта GNU, слабо связаны. Отчасти это по замыслу, отчасти по необходимости.

В отличие от BSD, где ядро ​​и базовое пользовательское пространство разрабатываются и поддерживаются вместе, ядро ​​Linux и его пользовательское пространство разрабатывались и поддерживаются разными людьми. Так что держать их тесно связанными вместе было бы сложно, даже если бы сообщество захотело этого, а я не думаю, что оно этого хочет.

И @sebasth также прекрасно отмечает, что основная политика проекта ядра Linux заключается в том, что он не должен нарушать пространство пользователя. Что, конечно же, является еще одним фактором, усиливающим слабую связанность.

Тем не менее, некоторая степень связи все еще существует. Достаточно старое ядро ​​Linux не будет работать с современными дистрибутивами.

0
16.09.2019, 21:34
1 ответ
$ type kill
kill is a shell builtin

Запуск только kill -lзапускает встроенную версию оболочки. Но sudoне запускает свои команды через оболочку, поэтому вместо этого sudo kill -lзапускает /bin/kill, найденный через $PATH. Две разные реализации по сути одной и той же утилиты, просто у них немного разный формат вывода для -l.

Аналогичный результат можно получить с любой утилитой, имеющей встроенную реализацию оболочки и внешнюю. Просто их не много. На ум приходят echoи printf, но встроенные версии Bash аналогичны версиям в GNU coreutils, по крайней мере, кроме этого:

$ echo --help              # Bash
--help
$ /bin/echo --help         # coreutils  
Usage: /bin/echo [SHORT-OPTION]... [STRING]...
  or:  /bin/echo LONG-OPTION
Echo the STRING(s) to standard output.
...

(Оба также имеют printf --help, с разными текстами.)

Причина, по которой оболочка имеет встроенную версию kill, в основном заключается в том, что если вы нажмете ограничение на количество процессов, вы не сможете запустить новый процесс, чтобы завершить другие.

0
28.01.2020, 03:16

Теги

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