На моем сервере человечности 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
и 2-й сценарий
[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
сервис запустился или нет.
Обновление:
Хотя 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)
Я понял это, почему это не выполнялось.
Первый я должен включить сервисы как
sudo systemctl enable swoop.mongo
& & sudo systemctl enable swoop.app
кроме того, я должен измениться WantedBy=local.target
на WantedBy=multi-user.target
.