So verwenden Sie Upstart auf einem VirtualBox-Gast

So verwenden Sie Upstart auf einem VirtualBox-Gast

Ich habe einen benutzerdefinierten Upstart-Job mit dieser Grundstruktur:

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

Dies wird auf einer Ubuntu 14.04.5 LTSInstanz in ausgeführt VirtualBox 5.0.26.

/storage/_foo/existiert in der Gastfestplatte

bar/existiert im Hostsystem (auch Ubuntu 14.04.5 LTS) und wird gemountet durchGastbeiträgeund einige symbolische Links bei/storage/_foo/

$ cd /storage/_foo
$ ls -alF
...
lrwxrwxrwx  1 the_user code   43 aug 18 14:23 bar -> /mnt/bar_at_host
...

Der Job kann problemlos gestartet werden, nachdem der Gast wie folgt gebootet wurde:

$ sudo start ulfs_bar_example

Aber wie in der Konfigurationsdatei angegeben, möchte ich, dass der Job gestartet wird, wenn beim normalen Booten Runlevel 2 aufgerufen wird. Aber es scheint ein Problem beim Mounten zu geben, da der Job nicht gestartet wird. dmesgIch erhalte Folgendes:

[    8.793493] init: Failed to spawn ulfs_bar_example main process: unable to change working directory: No such file or directory

Ohne Erfolg habe ich versucht, Folgendes zu ändern:

start on runlevel 2

zu verschiedenen Dingen ähnlich diesem:

start on (local-filesystems and runlevel 2)

Was mache ich falsch? Wie kann ich das beheben?

Antwort1

Sind Sie sicher, dass Ihr System in Runlevel 2 und nicht in ein anderes Runlevel wechselt? Haben Sie es versucht start on runlevel [2345]?

verwandte Informationen