a.service와 b.service 두 가지 서비스를 준비했습니다. a.service는 a.timer를 사용하여 실행됩니다.
서비스
[Unit]
Description=service a
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
#restart on failure and tries 5 times. If fail in all, then reboot the system
ExecStart=/usr/bin/python /home/pi/.clar/a.py
Restart=on-failure
RestartSec=15
StartLimitBurst=5
StartLimitInterval=2min
StartLimitAction=reboot
a.타이머
[Unit]
Description=10minute timer
[Timer]
# start this 20 Sec after boot:
OnBootSec=20
# ... and then every 10 minute:
OnUnitActiveSec=10m
[Install]
WantedBy=multi-user.target
b.서비스
[Unit]
Description=b service
After=a.service
[Service]
Type=simple
#restart on failure and tries 5 times. If fail in all, then reboot the system
ExecStartPre=/usr/bin/python /home/pi/.clar/c.py
ExecStart=/usr/bin/python /home/pi/.clar/b.py
Restart=on-failure
RestartSec=15
StartLimitBurst=5
StartLimitInterval=2min
StartLimitAction=reboot
[Install]
WantedBy=multi-user.target
내 구성에서는 a.service가 시작 후 20초 후에 시작되고 b.service는 a.service 후에 실행되어야 합니다.
그러나 실제로 b.service는 a.service보다 먼저 시작됩니다. Google을 검색하여 Requires=a.service
b.service 단위 섹션에 및 추가를 시도했습니다. Wants=a.service
그러나 아무도 나를 도와주지 않았습니다.
퇴근 후에는 이해가 안 돼요. 구성에 추가해야 할 다른 항목이 있나요?
답변1
무루가 말했듯이 아래와 같이 수정할 수 있습니다.
[Unit]
Description=b service
After=a.service
[Service]
Type=simple
#restart on failure and tries 5 times. If fail in all, then reboot the system
ExecStartPre=/usr/bin/python /home/pi/.clar/c.py
ExecStart=/usr/bin/python /home/pi/.clar/b.py
Restart=on-failure
RestartSec=15
StartLimitBurst=5
StartLimitInterval=2min
StartLimitAction=reboot
[Install]
WantedBy=a.service
그럼 당신은해야 sudo systemctl disable b.service
하고sudo systemctl enable b.service