
오랫동안 실행 중인 명령이 있는데 이를 방해하고 싶지 않습니다. 하지만 프로세스를 계속 확인하고 싶습니다(대부분 원격으로). top
등의 명령어를 통해 프로세스를 지속적으로 모니터링하고 있습니다 . 프로세스는 터미널 기반 프로세스이며 또는 유사한 명령을 통해 시작되지 않습니다. 따라서 출력을 확인하는 유일한 방법은 물리적 액세스를 사용하는 것입니다.iotop
stat
screen
tmux
나는 그것이 /proc
그 과정에 관한 많은 정보를 담고 있다는 것을 알고 있습니다. 따라서 출력(또는 출력의 마지막 배치(문자/단어/줄))도 표시할 수 있는지 궁금합니다. 검색했지만 /proc/<pid>/fd
유용한 내용을 찾을 수 없습니다.
아래는 출력입니다ls -l /proc/26745/fd/*
lrwx------ 1 user user 64 Oct 28 13:19 /proc/26745/fd/0 -> /dev/pts/17
lrwx------ 1 user user 64 Oct 28 13:19 /proc/26745/fd/1 -> /dev/pts/17
lrwx------ 1 user user 64 Sep 27 22:27 /proc/26745/fd/2 -> /dev/pts/17
어떤 충고?
답변1
나는 strace
그것을 사용할 것입니다 :
strace -qfp PID -e trace=write -e write=1,2
이는 write(2)
PID 및 해당 하위 프로세스에 대한 모든 시스템 호출을 추적하고 파일 설명자 1과 2에 기록된 데이터를 16진수 덤프합니다.
물론, 이 과정을 통해 알 수는 없습니다.이미tty에 쓰지만 특정 시점부터 모든 쓰기가 모니터링됩니다.
또한 strace
출력 형식을 변경하는 데 적합하지 않습니다. 더 많은 유연성이 필요한 경우 gdb(1)
작은 프로그램을 사용하거나 작성하는 것이 좋습니다.ptrace(2)