Jakie są opcje wiersza poleceń systemd „--switched-root” i „--deserialize”?

17

Wykonanie a psna moim Linux-ie pokazuje, że systemddziała z opcjami wiersza poleceń --switched-rooti --deserialize. Nic na stronie podręcznika ani nie /usr/share/doc/systemdwspomina o nich, a Google niewiele pomógł. Co oni robią? Zgaduję, że --switched-rootma to coś wspólnego z pivot_root , ale to tylko przypuszczenie.

Matthew Cline
źródło
1
Dobra uwaga, to samo tutaj na Arch: mój proces n. 1 jest systemd --system --deserialize 18. Ponownie nie ma żadnych wskazówek od człowieka.
MariusMatutiae

Odpowiedzi:

18

Są to celowo nieudokumentowane wewnętrzne części systemu. Dlatego po prostu:

  • --deserializesłuży do przywracania zapisanego stanu wewnętrznego, który poprzednio wywołał systemd, w exec()tym przypadku, zapisał do pliku. Argument opcji to otwarty deskryptor pliku dla tego procesu .
  • --switched-rootsłuży do poinformowania tego wywołania o systemdtym, że zostało wywołane z systemdzarządzania initramfs , i dlatego powinien zachowywać się odpowiednio - w tym wyłączyć niektóre z zachowań spowodowanych przez --deserialize.
JdeBP
źródło
3
To dobra odpowiedź. Aby to nieco rozwinąć: systemd działający z --deserialize --switched-root zasadniczo oznacza, że ​​systemd był również używany w initramfs. Obecnie jest to dość powszechne, więc tych dwóch opcji należy się spodziewać w wierszu poleceń PID 1.
zbyszek
@zbyszek Więc o co tu chodzi? Jeśli to dobra odpowiedź, dlaczego te ujawnione publicznie części wewnętrzne systemdnie są jeszcze częścią oficjalnej systemddokumentacji? Czy twoje wyjaśnienie nie powinno być zawarte w oficjalnej systemddokumentacji, aby wyjaśnić nam, co widzimy ( systemd-cgls | grep deserialize)? Jest już 2020 rok! Czy Google i SO są tak naprawdę jedynym miejscem, w którym tak publicznie zaprezentowane części wewnętrzne systemdnależy wyjaśnić nieletnim takim jak my?
Tino