activate.sh
여기에 systemd를 처음 사용했습니다. 기본적으로 , toggle.sh
및 3개의 다른 스크립트가 있습니다 deactivate.sh
. 다음을 수행하기 위해 시스템 서비스와 타이머를 사용하고 싶습니다.
- 서비스가 처음 시작되면 다음을 실행하십시오.
activate.sh
한 번 - 타이머를 사용하여 다음까지 계속 실행하고 싶습니다
toggle.sh
. - 서비스가 중지되었습니다. 이 경우 실행됩니다.
deactivate.sh
ExecStart
나는 다른 , ExecStartPre
, ExecStop
, 등을 시도했지만 RemainAfterExit
성공하지 못했습니다. 누구든지 올바른 방향으로 나를 가리킬 수 있습니까?
답변1
다음과 같이 세 개의 새 유닛 파일을 생성해야 합니다(테스트되지 않음).
mything.service
:
[Unit]
Description=My custom thingy
[Service]
Type=service
ExecStart=/path/to/activate.sh
ExecStop=/path/to/deactivate.sh
[Install]
WantedBy=multi-user.target
Wants=togglemything.timer
togglemything.timer
:
[Unit]
Description=My custom timer thingy
[Timer]
OnCalendar=hourly
togglemything.service
:
[Unit]
Description=Toggle my custom thing
[Service]
Type=oneshot
ExecStart=/path/to/toggle.sh
마지막 두 개는 해당 지점 이전에 동일한 이름을 가져야 합니다. 그렇지 않으면 타이머는 아무 작업도 수행하지 않습니다.
당신이해야 할 일은 systemctl start mything
일을 작동시키는 것뿐입니다.