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

На моей машине ( тестирование 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] .

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.

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

  • Системный пользовательский блок, который зависит от системного блока (sleep.target)
  • Прокси-сервер активации Systemd?
  • Запуск nginx при загрузке с помощью systemd, Raspbian 8 (jessie)?
  • systemd: ложь о имени процесса, используя sh -c exec idiom
  • поиск systemd unit «владение» запущенным процессом демонов
  • Как установить скорость и дуплексную скорость Ethernet
  • Как направить вывод журнала определенных единиц в определенный файл?
  • Мне нужно запустить сценарий запуска одной строки под gnome и systemd
  • socat: вызов из скрипта, bashrc или systemd?
  • Могу ли я узнать, запущен ли я в systemd?
  • Почему Fedora 20 запрашивает перезапуск после обновлений программного обеспечения?
  • Зависимость не удалась для монтирования после dist-upgrade
  • Interesting Posts

    Есть ли способ переопределить навигационные клавиши для режима копирования tmux?

    Как я могу нажимать клавишу «keycode 53» каждую минуту в X?

    Установка петли параллельно

    Fedora – встроенный микрофон не работает

    Вывести результат печати непосредственно в bash без использования if

    Как создать список всех приложений, которые были установлены вручную?

    Установка Geant4 вместе с GEANT-3 и Root 6 вместе с Root 5

    Есть ли процесс, который не отправляет EOF до завершения и как его создать?

    GNU make – как конкатенация переменной в зависимости от результата команды оболочки (версия GCC)

    Интеллектуальное переключение между несколькими процессами BASH

    Atom 230 + 2GB RAM хранилище данных для небольшого сервера = 64-разрядный или 32-разрядный debian

    Как я могу перенаправить порты 80 и 443 на 8080 и 8443 с помощью iptables?

    Как избежать сбоя BIOS?

    Почему меня все еще спрашивают пароль ssh, когда я использую аутентификацию с помощью частного ключа?

    Медленный

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