시스템 단위 파일을 작성하려고 합니다. 서비스 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
두 번째 서비스에는 첫 번째 서비스가 필요하므로 해당 명령을 추가하기만 하면 됩니다 . 이게 도움이 되길 바란다!