Você tem uma incompatibilidade de protocolo de prontidão.
O Type
de um serviço é importante. Essa configuração denota o protocolo de prontidão que o sistema espera que o serviço fale. Um simple
service é assumido como estando imediatamente pronto. Um forking
service é levado para ficar pronto após o processo inicial bifurcar um filho e sair. Um dbus
service é levado para ficar pronto quando um servidor aparecer no Desktop Bus. E assim por diante.
Se você não conseguir que o protocolo de prontidão declarado na unidade de serviço corresponda ao que o serviço faz, as coisas dão errado. As incompatibilidades do protocolo de prontidão fazem com que os serviços não sejam iniciados corretamente ou (mais comumente) sejam (mal) diagnosticados pelo systemd como defeituosos. Quando um serviço é visto como falha ao iniciar porque o protocolo de prontidão nunca aciona o systemd, ele garante que cada processo adicional órfão do serviço que pode ter sido deixado em execução como parte da falha (do seu ponto de vista) seja eliminado para trazer o serviço corretamente de volta ao estado inativo.
VBoxHeadless
não (inutilmente) bifurca e sai. O doco do VirtualBox afirma isso explicitamente. Portanto, a configuração correta na sua unidade de serviço é Type=simple
.
A propósito, o resto de nós pode rastrear o parentesco de sua unidade de serviço para esta postagem anônima em um ArchLinux fórum provavelmente por meio de uma postagem de acompanhamento no StackOverflow , porque você copiou o erro de ortografia que o anônimo pessoa feita lá. A ortografia correta é WantedBy=multi-user.target
. Isso foi dois anos e meio (e 2170 visualizações) sem ser visto. Sem dúvida, essa também teria sido sua próxima pergunta.
A unidade de serviço de modelo do wiki do Arch Linux, que é parametrizada no UUID da máquina virtual, é o caminho a seguir, aqui.
Leitura adicional
- "VBoxHeadless, o servidor de área de trabalho remota" . Oracle VM VirtualBox® Manual do Usuário: máquinas virtuais remotas . 2004. Oracle Corporation.
- "Iniciando máquinas virtuais com um serviço" . VirtualBox . Wiki do Arch Linux.
- Jonathan de Boyne Pollard (2001). " Não bifurque () para" colocar o daemon em segundo plano '. ". Erros a evitar ao projetar programas do programa Unix . Respostas frequentemente dadas.