tty2에서 시작된 프로세스의 tty1에서 PID를 가져 오는 방법은 무엇입니까?bash lsof : 한 tty에서 다른 tty로 pid 가져 오기
컨텍스트 :
이 파일이 미리 정의 된 최대 크기를 초과하면 파일을 생성하는 프로세스를 중단시키기위한 배쉬 원 라이너를 작성하려고합니다. (한 줄 짜기는 아직 작동하지 않고 루프에 끼워 넣어야합니다.)
테스트 중에 포인트는 tty2에 명령이 실행되는 tid2에도 불구하고 lsof은 터미널 tty1의 PID를 반환하지 않습니다.
tty1로 : 파일 및 모니터링을 생성하는 변경
MAX_SIZE_Ko=10001;file=test_lsof;dd if=/dev/zero of=$file bs=1k count=800;inotifywait $file;SIZE_Ko=$(du -s $file | cut -f1); [[ "$SIZE_Ko" -gt "$MAX_SIZE" ]] && (PID=$(lsof $file | tail -n1 | awk -F" " '{ print $2 }') ; [[ ! -z $PID ]] && kill -9 $PID || echo "no running PID modifying $file")
에서 tty2 : 파일 크기를 증가
for ((1; 1; 1));do echo -e "foobar\n" >> test_lsof; echo $((i++))" - pid="$$; done
tty2 프로세스를 제어 할 수 있습니까? 그렇다면 프로세스 PID를 첫 번째 프로세스에서 검색 할 수있는 방식으로 저장하는 것이 좋습니다. 예를 들어 'test_lsof.pid'에 쓰는 것이 좋습니다. 대답은 –