Сбой службы systemd с зависимостью
На моем сервере Ubuntu 16.04 я написал две службы systemd для запуска docker
контейнеры при перезагрузке системы. из них начальная отлично загружается. Второй сервис зависит от первого сервиса, который никогда не выполняется. Однако, если запустить 2-й сервис вручную с sudo systemctl start swoop.app.service
тогда работает нормально.
вот первый скрипт
[Unit]
Description=Swoop MongoDb Server container
Requires=docker.service
After=docker.service
[Service]
TimeoutStartSec=0
ExecStart=/usr/bin/docker-compose -f /var/www/swoop/docker-compose.yml up -d mongo3 mongo2 mongo1 mongosetup
Restart=always
RestartSec=10s
Type=notify
NotifyAccess=all
[Install]
WantedBy=local.target
и второй сценарий
[Unit]
Description=Swoop App Server container
Requires=docker.service
After=docker.service
Requires=swoop.mongo.service
After=swoop.mongo.service
[Service]
TimeoutStartSec=0
ExecStart=/usr/bin/docker-compose -f /var/www/swoop/docker-compose.yml up -d app
Restart=always
RestartSec=10s
Type=notify
NotifyAccess=all
[Install]
WantedBy=local.target
Почему не в состоянии обнаружить swoop.mongo.service
служба запущена или нет.
Обновить:
Хотя Docker-контейнеры service1 работают после загрузки.
Статус Service1
$ systemctl status swoop.mongo.service
● swoop.mongo.service - Swoop MongoDb Server container
Loaded: loaded (/etc/systemd/system/swoop.mongo.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Состояние Service2
$ systemctl status swoop.app.service
● swoop.app.service - Swoop App Server container
Loaded: loaded (/etc/systemd/system/swoop.app.service; disabled; vendor preset: enabled)
Active: inactive (dead)
1 ответ
Я понял, почему это не выполняется.
Сначала мне нужно включить сервисы какsudo systemctl enable swoop.mongo
&& sudo systemctl enable swoop.app
Кроме того, я должен изменить WantedBy=local.target
в WantedBy=multi-user.target
,