Что означает `init ` в столбце COMMAND ps?

Чтение Что означают скобки вокруг процессов? Я понимаю, что имя исполняемого файла напечатано.

Linux ps man page:

Иногда процесс args будет недоступен; Когда это произойдет, ps вместо этого напечатает имя исполняемого файла в скобках.

Однако с ps -Awwo pid,comm,args я получаю:

  PID COMMAND COMMAND 1 init init [2] 

Что это значит? Предполагается ли «исполняемое имя» быть init или [2] ?

Я полагаю, что исполняемый файл, конечно же, init – что [2] ? Почему он печатается?

(Кроме того, я действительно не понимаю, почему он не может показать полный путь, если он знает имя исполняемого файла.)

One Solution collect form web for “Что означает `init ` в столбце COMMAND ps?”

Как столбец comm и первое слово столбца args в выводе ps показывают имя исполняемой программы, если все участники соответствуют стандарту. Однако возможны расхождения по разным причинам.

Когда запускается программа, имя команды, как показано в столбце args выбирается родительской программой, которая выполняет программу и передается в качестве аргумента ( argv[0] ). По соглашению родитель выбирает базовое имя исполняемого файла (то есть путь к исполняемому файлу без части каталога), но это не применяется. Как только программа запущена, она может перезаписать эту строку.

Init (по крайней мере, традиционный Linux SysVinit) перезаписывает свой argv[0] чтобы указать текущий уровень выполнения .

В Linux столбец comm первоначально заполняется ядром до первых 16 символов базового имени исполняемого файла. Процесс может изменить содержимое с помощью системного вызова prctl .

Если исполняемый файл переименован или удален, ни столбец comm , ни столбец args не отражают это.

ps не отображает путь к исполняемому файлу, который не находится в описании задания. lsof может сказать вам lsof -a -p 1 -d txt .

В Linux вы можете увидеть эту информацию в файлах в /proc/ PID / :

  • Имя процесса (поле comm ) в /proc/1/stat (второе поле в круглых скобках) и /proc/1/status (поле Name ).
  • Путь к исполняемому файлу через /proc/1/exe .
  • Аргументы (начиная с argv[0] ) в /proc/1/cmdline (аргументы разделяются пустым байтом).
  • SysV запускает скрипт с использованием локальной nvm
  • Уровни запуска SysV
  • Почему я иногда вижу «INIT: version 2.88 reloading» в консоли?
  • Как создать скрипт инициализации вместо служебного файла
  • После перехода на Devuan, как удалить systemd?
  • Использует ли тестирование Debian Sysvinit, Systemd или Upstart? Как его настроить (они?)?
  • Сценарии инициализации, вызывающие сценарий в каталоге пользователя - не работают (Ubuntu 18.04)
  • Как заблокировать загрузку модуля ядра только при загрузке одного пользователя, когда черный список не удается?
  • rc_status всегда возвращает "failed"
  • Справка с строкой «Обязательная остановка:» в сценарии инициализации типа System-V. Заголовок LSB
  • Как только система была запущена, есть ли преимущества в использовании systemd?
  • Interesting Posts

    sed несколько операторов в одной команде, не работающей

    Почему практически нет адаптеров WLAN для Linux?

    Как служба с PrivateTmp = true получает доступ к сокету unix в каталоге / tmp (например, для отправки заданий Torque из PHP, работающего в Apache)

    Как мы можем переименовать файл с точкой с запятой в качестве части имени файла?

    Как прочитать вывод команд в скрипте

    Как pkill из сценария?

    Почему некоторые пакеты используют «make install», а другие используют «sudo make install»,

    Переименовать подмножество файлов в каталоге

    IP-адреса, которые я связывал, продолжают перестать отвечать на ping

    Как удалить все элементы в папке, за исключением элементов grepped

    Mate терминал меняет прозрачность фона программно?

    Установите X2Go, чтобы разрешить удаленные окна на локальном рабочем столе?

    изменить стандартную оболочку для одного приложения с помощью pam

    Получение ошибочной опции «-asroot» на пакетах

    Как вернуться к выбору старого источника

    Linux и Unix - лучшая ОС в мире.