Ich habe ein einfaches Skript "start.sh", die ich es jedes Mal automatisch starten möchten, wenn Ubuntu 16.04 neu startet.Verwenden Sie Systemd, um ein Skript bei Ubuntu starten 16.04 Boot
Ich folgte diesem Beitrag: https://serverfault.com/questions/773162/i-cant-get-the-right-items-to-boot-on-ubuntu-16-04-and-systemd
Und dieses einfache Skript machen: https://github.com/kenpeter/test_run_at_boot
ich es hier setzen.
/lib/systemd/system/test_run_at_boot.service
Ich habe es
verknüpft/etc/systemd/system/multi-user.target.wants/test_run_at_boot.service -> /lib/systemd/system/test_run_at_boot.service
Jedes Mal, wenn ich meine Maschine neu starten, wird es nicht an den Start.
Ich versuche auch, den tatsächlichen Befehl an test_run_at_boot.service anzuhängen, immer noch nicht funktioniert.
[Unit]
Description=test_run_at_boot
[Service]
ExecStart=forever start -a -l forever.log -o out.log -e err.log /home/ubuntu/misc/service/test_run_at_boot/test_run_at_boot.js
[Install]
WantedBy=multi-user.target
aktualisieren
In syslog, bekam ich diese. /usr/bin/env: ‘node’: No such file or directory
Dies führt dazu, dass das Skript beim Start fehlschlägt.
Aug 5 06:45:23 xyz start.sh[1557]: /usr/bin/env: ‘node’: No such file or directory
Aug 5 06:45:23 xyz systemd[1]: Starting LSB: Record successful boot for GRUB...
Aug 5 06:45:23 xyz acpid: starting up with netlink and the input layer
Aug 5 06:45:23 xyz acpid: 1 rule loaded
Aug 5 06:45:23 xyz acpid: waiting for events: event logging is off
Aug 5 06:45:23 xyz systemd[1]: Started D-Bus System Message Bus.
Aug 5 06:45:23 xyz dbus[1590]: [system] AppArmor D-Bus mediation is enabled
Aug 5 06:45:23 xyz systemd[1]: Started Cgroup management daemon.
Aug 5 06:45:23 xyz systemd[1]: Starting Thermal Daemon Service...
Aug 5 06:45:23 xyz systemd[1]: Started FUSE filesystem for LXC.
Aug 5 06:45:23 xyz systemd[1]: Starting Restore /etc/resolv.conf if the system crashed before the ppp link was shut down...
Aug 5 06:45:23 xyz lxcfs[1624]: hierarchies: 0: memory
Aug 5 06:45:23 xyz lxcfs[1624]: 1: blkio
Aug 5 06:45:23 xyz lxcfs[1624]: 2: hugetlb
Aug 5 06:45:23 xyz lxcfs[1624]: 3: cpuset
Aug 5 06:45:23 xyz lxcfs[1624]: 4: freezer
Aug 5 06:45:23 xyz lxcfs[1624]: 5: net_cls,net_prio
Aug 5 06:45:23 xyz lxcfs[1624]: 6: pids
Aug 5 06:45:23 xyz lxcfs[1624]: 7: devices
Aug 5 06:45:23 xyz lxcfs[1624]: 8: cpu,cpuacct
Aug 5 06:45:23 xyz lxcfs[1624]: 9: perf_event
Aug 5 06:45:23 xyz lxcfs[1624]: 10: name=systemd
Aug 5 06:45:23 xyz systemd[1]: Starting System Logging Service...
Aug 5 06:45:23 xyz systemd[1]: Started Snappy daemon.
Aug 5 06:45:23 xyz systemd[1]: Started Regular background program processing daemon.
Aug 5 06:45:23 xyz cron[1648]: (CRON) INFO (pidfile fd = 3)
Aug 5 06:45:23 xyz systemd[1]: Starting Accounts Service...
Aug 5 06:45:23 xyz cron[1648]: (CRON) INFO (Running @reboot jobs)
Aug 5 06:45:23 xyz systemd[1]: Starting Login Service...
Aug 5 06:45:23 xyz systemd[1]: Starting LXD - container startup/shutdown...
Aug 5 06:45:23 xyz systemd[1]: Started System Logging Service.
Aug 5 06:45:23 xyz systemd[1]: test_run_at_boot.service: Main process exited, code=exited, status=127/n/a
Aug 5 06:45:23 xyz systemd[1]: test_run_at_boot.service: Unit entered failed state.
Aug 5 06:45:23 xyz systemd[1]: test_run_at_boot.service: Failed with result 'exit-code'.
aktualisiert 1
Ich folge diesem Beitrag
https://patrakov.blogspot.com.au/2011/01/writing-systemd-service-files.html
ich einige Änderungen vorgenommen
https://github.com/kenpeter/test_run_at_boot/blob/master/test_run_at_boot.service
Es ist in der Lage t o Starten Sie den Dienst nach dem Neustart, aber nach 1 - 2 Minuten verschwindet der Dienst. Siehe unten.
[email protected]:~$ ps aux | grep test
root 2155 0.3 3.8 942196 38780 ? Ssl 13:04 0:00 /home/ubuntu/.nvm/versions/node/v6.3.1/bin/node /home/ubuntu/.nvm/versions/node/v6.3.1/lib/node_modules/forever/bin/monitor /home/ubuntu/misc/service/test_run_at_boot/test_run_at_boot.js
ubuntu 3223 0.0 0.1 12944 1092 pts/0 S+ 13:05 0:00 grep --color=auto test
[email protected]:~$ cd misc/
[email protected]:~/misc/service/test_run_at_boot$ ls
err.log node_modules out.log package.json start.sh stop.sh test_run_at_boot.js test_run_at_boot.service
[email protected]:~/misc/service/test_run_at_boot$ ps aux | grep test
ubuntu 3240 0.0 0.0 12944 1012 pts/0 S+ 13:05 0:00 grep --color=auto test
[email protected]:~/misc/service/test_run_at_boot$
Update 2
In syslog
Aug 6 01:24:22 xyz start.sh[1663]: warn: --minUptime not set. Defaulting to: 1000ms
Aug 6 01:24:22 xyz start.sh[1663]: warn: --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
Aug 6 01:24:22 xyz start.sh[1663]: info: Forever processing file: /home/ubuntu/misc/service/test_run_at_boot/test_run_at_boot.js
Aug 6 01:24:22 xyz systemd[1]: test_run_at_boot.service: PID 3347 read from file /home/ubuntu/misc/service/test_run_at_boot/test_run_at_boot.pid does not exist or is a zombie.
....
....
Aug 6 01:24:55 xyz systemd[1]: Started Execute cloud user/final scripts.
Aug 6 01:24:55 xyz systemd[1]: Reached target Cloud-init target.
Aug 6 01:25:00 xyz ntpdate[2709]: adjust time server 91.189.91.157 offset 0.104466 sec
Aug 6 01:25:51 xyz systemd[1]: test_run_at_boot.service: Start operation timed out. Terminating.
Aug 6 01:25:51 xyz systemd[1]: Failed to start test_run_at_boot.
Aug 6 01:25:51 xyz systemd[1]: test_run_at_boot.service: Unit entered failed state.
Aug 6 01:25:51 xyz systemd[1]: test_run_at_boot.service: Failed with result 'timeout'.
Haben Sie den Dienst mit 'systemctl enable' aktiviert? –
normalerweise 'nodejs' auf Ubuntu – Matt
und Sie brauchen nicht wirklich immer wenn Sie systemd haben – Matt