La parada del servicio vboxautostart de Ubuntu 15.10 no funciona

La parada del servicio vboxautostart de Ubuntu 15.10 no funciona

Reemplacé mi sistema 14.04 por una instalación nueva de 15.10. Con 14.04 utilicé el script de inicio vboxautostart para iniciar un invitado vbox en el momento del arranque y detenerlo durante el apagado del sistema. Esto solía funcionar muy bien.

Ahora estoy intentando lograr una configuración similar con Ubuntu 15.10. La principal diferencia es que tengo que usar systemd, con el que aún no estoy muy familiarizado. Pude realizar la configuración específica de vbox, por lo que puedo llamar /usr/lib/virtualbox/vboxautostart-service.sh start/stopdesde el shell y funciona perfectamente. También puedo usarlo systemctl start vboxautostart-service.servicepara iniciar el invitado vbox. Incluso se inicia automáticamente al iniciar el sistema después de habilitar el servicio. Sin embargo, si intento detener el servicio con

systemctl stop vboxautostart-service.service

no hace nada, por lo que el invitado sigue ejecutándose después.
El estado de systemctl muestra lo siguiente:

root@linux:~# systemctl -l status vboxautostart-service.service
● vboxautostart-service.service
   Loaded: loaded (/usr/lib/virtualbox/vboxautostart-service.sh; enabled; vendor preset: enabled)
   Active: inactive (dead) since Sa 2015-10-31 16:39:10 CET; 4min 57s ago
  Process: 5645 ExecStop=/usr/lib/virtualbox/vboxautostart-service.sh stop (code=exited, status=0/SUCCESS)
  Process: 5586 ExecStart=/usr/lib/virtualbox/vboxautostart-service.sh start (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/vboxautostart-service.service
           ├─ 875 /usr/lib/virtualbox/VBoxXPCOMIPCD
           ├─ 880 /usr/lib/virtualbox/VBoxSVC --auto-shutdown
           └─5602 /usr/lib/virtualbox/VBoxHeadless --comment server --startvm b3376916-8562-442e-a25e-cfe26fa800db --vrde config

Okt 31 16:37:52 linux systemd[1]: Starting vboxautostart-service.service...
Okt 31 16:37:52 linux vboxautostart-service.sh[5586]: Starting VirtualBox VMs configured for autostart
Okt 31 16:37:52 linux systemd[1]: Started vboxautostart-service.service.
Okt 31 16:39:10 linux systemd[1]: Stopping vboxautostart-service.service...
Okt 31 16:39:10 linux systemd[1]: Stopped vboxautostart-service.service.

El comando ExecStop en el servicio parece bastante correcto, sin embargo, por alguna razón no funciona cuando se llama desde systemd. ¿Alguna idea de lo que puedo hacer aquí?

Respuesta1

Parece que tengo el mismo problema en Debian Jessie con systemd y virtualbox 5.0.10 empaquetados desde Oracle.

Después de mucha depuración, parece haber algo relacionado con la forma en que se llama al demonio start-stop en la función stop() en /usr/lib/virtualbox/vboxautostart-service.sh (alrededor de la línea 236) que no activa la función start() de la misma manera

Lo que se me ocurrió es un truco horrible, pero realmente me gustaría que alguien más amigable con Systemd profundizara en este problema.

Reemplacé en /usr/lib/virtualbox/vboxautostart-service.sh :

for user in `ls $VBOXAUTOSTART_DB/*.stop` 
do
    start_daemon `basename $user | sed -ne "s/\(.*\).stop/\1/p"` $binary $PARAMS > /dev/null 2>&1
done

con :

for user in `ls $VBOXAUTOSTART_DB/*.stop`
do
    su - `basename $user | sed -ne "s/\(.*\).stop/\1/p"` -c "$binary $PARAMS" > /dev/null 2>&1
done

Respuesta2

Parece que tengo el mismo problema en ubuntu 16.06 xenial con systemd y VirtualBox 5.1.x empaquetados desde Oracle.

Encontré una solución aquí: https://www.virtualbox.org/ticket/14955

Cambiar en /usr/lib/virtualbox/vboxautostart-service.sh:

  1. start-stop-daemon --background --chuid $usr --start --exec $bin -- $@
  2. start-stop-daemon --chuid $usr --start --exec $bin -- $@

información relacionada