Wie finde ich heraus, ob das System systemd in chroot verwendet?

437
nithinj

Ich habe den folgenden Befehl verwendet, um zu überprüfen, ob das System systemd verwendet
if [[ 1 == pidof systemd ]]; then

Dies schlägt jedoch in Chroot fehl, da proc nicht gemountet ist.

sh-4.2# pidof systemd sh-4.2# ps Error, do this: mount -t proc proc /proc

Mit welcher alternativen Methode kann geprüft werden, ob das System systemd oder sysv verwendet?

0
Aus Neugier, warum? Zoredache vor 7 Jahren 1
Wenn ja, registriert das Skript den Dienst bei systemd, andernfalls nein. nithinj vor 7 Jahren 1
Mögliches Duplikat von [wissen, ob ich systemd auf meinem Linux verwende?] (Http://superuser.com/questions/1017959/how-to-know-if-i-am-using-systemd-on-my- Linux) Mark Stosberg vor 7 Jahren 0
Nur um zu klären, Sie versuchen, Dinge innerhalb der Chroot-Umgebung zu überprüfen? Wie werden Sie systemd außerhalb der chroot konfigurieren, von innen heraus? Zoredache vor 7 Jahren 0
Ich beabsichtige, systemd im Chroot-Gefängnis zu aktivieren (es könnte ein anderes Betriebssystem sein). nithinj vor 7 Jahren 0
@MarkStosberg, Diese Frage ist spezifisch für das Chroot-Gefängnis und wird in der Frage erwähnt. Es darf kein Duplikat sein. nithinj vor 7 Jahren 0

1 Antwort auf die Frage

0
Mark Stosberg

Sie können überprüfen, ob / sbin / init ein symbolischer Link zu systemd ist. Dies ist nicht so gut wie die psMethode, da es möglich (aber unwahrscheinlich) ist, dass etwas anderes /sbin/initals PID 1 ist.

if [[ `file /sbin/init | grep -q systemd && echo 1` = 1 ]] 
Aber das ist in einer Chroot (siehe Titel / Tags)? Die Init-Binärdatei muss nicht in der Chroot sein. Oder Sie könnten eine Init-Binärdatei haben, die nicht der Systeminitialisierung entspricht. Zoredache vor 7 Jahren 0
Es funktioniert in meiner Chroot-Umgebung. Aber nicht sicher, ob es Vorbehalte gibt, wie @Zoredache gesagt hat. nithinj vor 7 Jahren 0