종료되거나 종료되지 않을 수 있는 시스템 단위 파일에서 ExecStartPost 명령을 실행하는 방법

종료되거나 종료되지 않을 수 있는 시스템 단위 파일에서 ExecStartPost 명령을 실행하는 방법

시스템 단위 파일을 작성하려고 합니다. 서비스 siad를 시작할 때 몇 시간 동안 실행되거나 즉시 완료될 수 있는 다른 명령 /usr/sbin/clearshare-scheduler.sh를 시작하고 싶습니다. 이 작업을 위해 ExecStartPost를 사용해 보았지만 명령이 짧은 시간 내에 완료되지 않고 실패 메시지가 표시되면 systemd는 이를 좋아하지 않습니다. 예제 파일은 다음과 같습니다:

[Unit]
Description=Siad
After=syslog.target network.target

[Service]
Type=simple
OOMScoreAdjust=500
PIDFile=/var/run/siad.pid
EnvironmentFile=/etc/sysconfig/siad
Environment="SIA_DATA_DIR=/var/lib/siad-data"
ExecStart=/usr/bin/siad $EXTRA_ARGS
ExecStop=/usr/bin/siac stop
WorkingDirectory=/var/lib/sia/
ExecStartPost=/usr/bin/sh -c 'umask 022; /usr/bin/pgrep siad > /var/run/siad.pid'
ExecStartPost=/usr/sbin/clearshare-scheduler.sh

[Install]
WantedBy=multi-user.target

나는 "&"를 사용하여 배경에 넣고 시작하기 위해 nohup을 사용해 보았지만 역시 작동하지 않았습니다.

답변1

TimeoutStartSec=아래에 테스트가 추가되었습니다 [Service]. 모든 부팅 프로세스에 영향을 미칩니다.

https://www.freedesktop.org/software/systemd/man/systemd.service.html#TimeoutStartSec=

답변2

/usr/sbin/clearshare-scheduler.sh두 번째 서비스에는 첫 번째 서비스가 필요하므로 해당 명령을 추가하기만 하면 됩니다 . 이게 도움이 되길 바란다!

관련 정보