생성된 프로세스를 모니터링하기 위해 Bash 루프를 사용하고 있는데, 잠시(몇 시간/일) 후에 출력을 /dev/null로 리디렉션하려고 하면 "작업이 허용되지 않음" 오류가 발생하는 경우가 있습니다.
/script.sh: line 4: /dev/null: Operation not permitted
스크립트는 다음과 같습니다.
#!/bin/bash
command &
pid=$!
while kill -0 "${pid}" &>/dev/null; do
sleep 1 # cannot use `wait "${pid}"` for reasons
done
이제 /dev/null이 되는 원인이 무엇인지 궁금합니다. 그렇다면 정확히 무엇입니까? 접근할 수 없나요? 어떤 식으로든 손상되었나요? 캐릭터 특수 파일 /dev/null을 일시적으로 사용할 수 없거나 사용 중입니까? "작업이 허용되지 않음" 오류가 언제 발생했습니까?
참고: 스크립트 사용으로 인해 오류가 처음 발생한 후에도 계속되는지 알 수 없습니다 set -e
. 이 부분은 제가 변경할 수도 있지만 여기서는 장단점을 논의하고 싶지 않습니다 set -e
. ;-)