Takže sledujete nějaký tutoriál na internetu a použili jste příkaz systemd jako sudo systemctl start
.
K vašemu překvapení má příkaz za následek chybu, jako je tato:
System has not been booted with systemd as init system (PID 1). Can't operate.
Důvod:Váš systém Linux nepoužívá systemd
Důvodem je, že se pokoušíte použít příkaz systemd ke správě služeb na Linuxu, ale váš systém nepoužívá systemd a (s největší pravděpodobností) používá klasický systém SysV init (sysvinit).
Ale jak je to možné? Používáte Ubuntu a tutoriál je také pro stejnou verzi Ubuntu. Jak to, že vám to nefunguje?
Pokud používáte Ubuntu ve Windows pomocí WSL, budete mít SysV místo systemd a váš systém si bude stěžovat, když spustíte příkaz systemctl (určeno pro systémy Linux se systémem systemd init).
Jak zjistit, který init systém používáte? Tento příkaz můžete použít ke zjištění názvu procesu spojeného s PID 1 (první proces, který běží na vašem systému):
ps -p 1 -o comm=
Ve výstupu by měl zobrazovat init nebo sysv (nebo něco takového). Pokud vidíte init, váš systém nepoužívá systemd a měli byste použít příkazy init, jak je vysvětleno v další části.
Jak opravit chybu „Systém nebyl spuštěn pomocí systemd“?
Jednoduchá odpověď je nepoužívat příkaz systemctl. Místo toho použijte ekvivalentní příkaz sysvinit.
Není to příliš složité a oba příkazy mají poněkud podobnou syntaxi.
Tato tabulka by vám měla pomoci.
Příkaz Systemd | Příkaz Sysvinit |
---|---|
systemctl start service_name | service service_name start |
systemctl stop service_name | service service_name stop |
systemctl restart service_name | restart služby service_name |
systemctl status service_name | stav service_name |
systemctl enable service_name | chkconfig service_name zapnuto |
systemctl zakázat service_name | chkconfig service_name vypnuto |
Ať už sledujete kterýkoli tutoriál, zkuste použít ekvivalentní příkazy a neuvidíte "Systém nebyl spuštěn pomocí systemd jako init system (PID 1). Nelze pracovat." už chyba.
Dejte mi vědět, zda vám to pomohlo zbavit se této chyby nebo ne. Rád vám pomohu.