Зачем добавлять круглые скобки вокруг имени процесса?

На моей машине ( тестирование Debian ), когда я это делаю

ps aux | grep pam 

Я получаю

 orto 609 0.0 0.0 58532 2148 ? S 08:06 0:00 (sd-pam) orto 5533 0.0 0.0 12724 1948 pts/1 S+ 16:51 0:00 grep pam 

(sd-pam) кажется странным именем для процесса. Читая этот форум , я вижу, что это имя задано с помощью systemd. В исходном коде мы видим

 /* The child's job is to reset the PAM session on * termination */ /* This string must fit in 10 chars (ie the length * of "/sbin/init"), to look pretty in /bin/ps */ rename_process("(sd-pam)"); 

Что значит выглядеть симпатичным в /bin/ps и почему выбирать (sd-pam) а не просто sd-pam как имя? Помещение скобок вокруг имени кажется показательным, что этот процесс имеет что-то особенное для потока ядра, например [kintegrityd] .

  • Смущает записи ExecStartPre в файле systemd unit
  • Symlinked systemd скрипт не запускается при загрузке без daemon-reload
  • Запрос на запуск службы повторяется слишком быстро, отказываясь запускать
  • Перезагрузите сетевые интерфейсы без перезагрузки
  • Как запустить Gnome из контейнера systemd-nspawn на втором сервере X?
  • Каковы параметры systemctl для «Список всех поврежденных единиц»,
  • Что такое «systemd» в CentOS 7
  • Какие команды устарели от systemd
  • 2 Solutions collect form web for “Зачем добавлять круглые скобки вокруг имени процесса?”

    Помещение скобок вокруг имени кажется показателем того, что этот процесс имеет что-то особенное

    Есть два случая:

    • (...)

    Когда PID 1 запускает двоичный файл службы, он сначала отключит процесс, а затем настроит параметры процесса в соответствии с конфигурацией службы и, наконец, вызовет execve () для выполнения фактического процесса обслуживания. В промежутке между fork и exec мы используем PR_SET_NAME, чтобы изменить имя процесса на то, что будет запущено, чтобы упростить сопоставление этого с конечным запущенным сервисом. Обратите внимание, однако, что существует строгое ограничение размера имени «comm» (т. Е. Имя процесса, которое будет установлено моим PR_SET_NAME, т. Е. Отображается «верхний»), что означает, что мы должны усечь. Мы отрубаем начало строки, поскольку обычно суффикс более интересен (в противном случае все различные службы systemd будут отображаться как «(systemd-)» – что не особенно полезно). Мы вставляем имя в (), чтобы уточнить, что это процесс, который в конечном итоге станет указанным процессом, но еще не все.

    См. https://lists.freedesktop.org/archives/systemd-devel/2016-April/036322.html.

    • (sd-pam) является особым случаем

    Если мы создадим единицу с непустым «PAMName =», мы откалимся от дочернего процесса внутри устройства, известного как «(sd-pam)», который следит за сеансом. Он ждет завершения основного процесса, а затем закончит его через pam_close_session (3).

    Что значит выглядеть симпатичным в / bin / ps и почему выбирать (sd-pam), а не просто sd-pam как имя? Помещение скобок вокруг имени кажется показателем того, что этот процесс имеет что-то особенное

    Да, у него есть что-то особенное. Это созданное имя, а не имя любого существующего двоичного файла. Другими словами, файл «sd-pam» отсутствует; этот процесс является вилкой PID 1.

    Скобки, вероятно, предназначены для обозначения этого.

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