![systemd: *.service 파일의 실행 시간 제어](https://linux55.com/image/219806/systemd%3A%20*.service%20%ED%8C%8C%EC%9D%BC%EC%9D%98%20%EC%8B%A4%ED%96%89%20%EC%8B%9C%EA%B0%84%20%EC%A0%9C%EC%96%B4.png)
종료 또는 재부팅 시 스크립트가 실행되도록 관리했지만 너무 늦게 실행되는 스크립트로 인해 발생한 오류가 발생했습니다. *.service 파일은 다음과 같습니다.
[Unit]
Description=My special shutdown script
[Service]
Type=oneshot
RemainAfterExit=true
ExecStop=/home/PL/bin/umountb2.sh
[Install]
WantedBy=multi-user.target
대답은 before=
or wants=
필드인 것 같아요.
제가 문제가 있다고 말하는 이유는 umountb2.sh가 두 가지 기본 작업을 수행하기 때문입니다. 즉, 파일 시스템을 (성공적으로) 마운트 해제한 다음 을 호출합니다 cryptsetup luksClose
. 마지막 호출은 오류를 반환합니다. 출력을 캡처하여 /dev/kmsg로 리디렉션하더라도 메시지는 표시되지 않고 echo
명령으로 실행된 메시지만 표시됩니다. 그래서 잘못된 시간에 호출되고 있다고 생각합니다.
다음은 문제가 발생한 곳에서 실행한 스크립트의 예입니다.
cryptsetup luksClose b258
if [ "$?" -ne 0 ]; then
echo "you gotta problem pal!"
보세요, cryptsetup
제가 볼 수 있는 결과가 하나도 없습니다. (내가 잘못된 곳을 보고 있는 걸까요?) 그래서 제가 얻는 유일한 결과는 제가 한 일뿐입니다.
편집: 사실 방금 테스트를 했는데 umount
이번에는 스크립트가 실패했습니다. 하지만 내 생각에는 결국 같은 문제, 즉 타이밍이 문제인 것 같습니다.
저는 우분투 22.04.2를 실행하고 있습니다.