У меня есть индивидуальная стартовая работа со следующей базовой структурой:
description "ulfs_bar_example"
author "Ulf"
# Only run at runlevel 2 (Default multiuser)
start on runlevel 2
stop on runlevel [!2]
# Keep it alive
respawn
chdir /storage/_foo/bar
exec sudo -u the_user /storage/_foo/venv/bin/python /storage/_foo/bar/the_app.py
Это выполняется на Ubuntu 14.04.5 LTS
экземпляре в VirtualBox 5.0.26
.
/storage/_foo/
существует на гостевом диске
bar/
существует в хост-системе (также Ubuntu 14.04.5 LTS
) и монтируется черезГостевые дополненияи некоторые символические ссылки на/storage/_foo/
$ cd /storage/_foo
$ ls -alF
...
lrwxrwxrwx 1 the_user code 43 aug 18 14:23 bar -> /mnt/bar_at_host
...
Задание можно запустить без проблем после загрузки гостя следующим образом:
$ sudo start ulfs_bar_example
Но как указано в conf-файле, я хочу, чтобы задание запускалось при входе на уровень выполнения 2 при нормальной загрузке. Но, похоже, есть какая-то проблема с монтированием, так как задание не запускается. В dmesg
я получаю это:
[ 8.793493] init: Failed to spawn ulfs_bar_example main process: unable to change working directory: No such file or directory
Без всякого успеха я пытался изменить:
start on runlevel 2
на различные вещи, подобные этому:
start on (local-filesystems and runlevel 2)
Что я делаю не так? Как это исправить?
решение1
Вы уверены, что ваша система переходит на уровень выполнения 2, а не на другой уровень выполнения? Вы пробовали start on runlevel [2345]
?