Написал ini-шник для запуска сервиса, добавил его через systemctl enable, проверил старт-стоп-рестарт через systemctl start, stop и restart. Перезагружаю машину — не запускается. Что я упустил?
Конфиг:
$ cat /etc/systemd/system/machine.service
[Unit]
Description=Machine in Docker
Requires=docker.service
After=docker.service
[Service]
ExecStart=/usr/bin/docker run machine
$ cat /etc/systemd/system/machine.service
[Unit]
Description=Machine in Docker
Requires=docker.service
After=docker.service
[Service]
ExecStart=/bin/sh -c '/usr/bin/docker run -d machine > /var/run/machine.key'
ExecStop=/bin/sh -c '/usr/bin/docker stop `cat /var/run/machine.key`'
Ручной запуск:
$ curl -I localhost
curl: (7) Failed to connect to localhost port 80: Connection refused
$ sudo systemctl enable machine
$ sudo systemctl start machine
$ curl -I localhost
HTTP/1.0 302 FOUND
Но после ребута сервер сам не запускается.
Добавление в конфиг
[Install]
WantedBy=default.target
[Install]
WantedBy=multu-user.target
Дистрибутив — Ubuntu 16.04. Но хотелось бы ответ без привлечения Upstart.
Что сделать, чтобы запускался после ребута?
UPDATE:
journalctl -e после запуска показывает строку «systemd[1]: Started Machine in Docker.» Но сервер не работает.
Ответ: в секции [Service] не хватало
Type=oneshot
RemainAfterExit=yes