Я заменил свои 14,04 систем новой установкой 15,10. С 14,04 я использовал vboxautostart init сценарий, чтобы запустить vbox гостя во время начальной загрузки и остановить его во время завершения работы системы. Это раньше работало очень хорошо.
Теперь я пытаюсь достигнуть подобной установки с Ubuntu 15.10. Основное различие - то, что я должен использовать systemd, который я не очень знаком с, еще. Я смог сделать vbox определенную установку, таким образом, я могу звонить /usr/lib/virtualbox/vboxautostart-service.sh start/stop
от оболочки и это работает отлично. Я могу также использовать systemctl start vboxautostart-service.service
запустить vbox гостя. Это даже запускается автоматически при системном запуске после того, как я включил сервис. Однако, если я пытаюсь остановить сервис с
systemctl stop vboxautostart-service.service
это ничего не делает, таким образом, гость все еще работает впоследствии.
состояние systemctl показывает следующее:
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.
Команда ExecStop в сервисе смотрит совершенно верно, однако, по некоторым причинам это не работает при вызове от systemd. Какая-либо идея, что я могу сделать здесь?
Похож у меня есть та же проблема на debian jessie с systemd и virtualbox 5.0.10 упакованных от Oracle.
После того, как партия отладки там швов, чтобы быть чем-то связанным со способом, в котором демона остановки начала вызывают на остановке () функцию/usr/lib/virtualbox/vboxautostart-service.sh (вокруг линии 236), который не делает спусковых механизмов для начала () функция таким же образом
, Что я придумал, является ужасным хакерским проникновением, но действительно хотела бы, чтобы кто-то больше systemd товарищеской встречи вырыл в эту проблему.
я заменил в/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
с:
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
Похож у меня есть та же проблема на человечности 16.06, гостеприимной с systemd и VirtualBox 5.1.x, упакованным от Oracle.
я нашел решение здесь: https://Изменение www.virtualbox.org/ticket/14955
в /usr/lib/virtualbox/vboxautostart-service.sh
:
start-stop-daemon --background --chuid $usr --start --exec $bin -- $@
start-stop-daemon --chuid $usr --start --exec $bin -- $@