Каковы параметры командной строки systemd «--switched-root» и «--deserialize»?

16

Выполнение a psна моем окне Linux показывает, что systemdработает с параметрами командной строки --switched-rootи --deserialize. Ничто на странице руководства не /usr/share/doc/systemdупоминает их, и Google не сильно помог. Так что они делают? Я предполагаю, что --switched-rootэто как-то связано с pivot_root , но это только предположение.

Мэтью Клайн
источник
1
Хороший вопрос, то же самое здесь, на Arch: мой процесс n. 1 - это systemd --system --deserialize 18. Опять нет понятия от человека.
MariusMatutiae

Ответы:

18

Это намеренно недокументированные внутренние части systemd. Поэтому очень просто:

  • --deserializeиспользуется для восстановления сохраненного внутреннего состояния, которое предыдущий вызов systemd, в том числе exec()этот, записал в файл. Его аргумент option является дескриптором открытого файла для этого процесса .
  • --switched-rootиспользуется, чтобы сообщить этому вызову о systemdтом, что он был вызван из systemdуправления initramfs , и поэтому должен вести себя соответствующим образом - включая отключение некоторых действий, вызванных иначе --deserialize.
JdeBP
источник
3
Это хороший ответ. Если немного углубиться в это: systemd, работающий с --deserialize --switched-root, по существу означает, что systemd также использовался в initramfs. В настоящее время это довольно распространенное явление, поэтому эти две опции следует ожидать в командной строке PID 1.
zbyszek