이 명령으로 앱을 시작하면 :
/path/to/my/command >> /var/log/command.log
그리고 명령이 반환되지 않습니다. 다른 프롬프트에서 STDOUT 리디렉션이 무엇으로 설정되어 있는지 확인할 수 있습니까?
나 같은 것을 찾고 있어요
cat /proc/PID/redirects
또는
ps -??? | grep PID
그러나 모든 방법이 가능합니다.
답변
에서 파일 설명자 # 1 (STDOUT)을 확인하십시오 /proc/$PID/fd/
. 커널은이 파일을 설명자가 경로 재 지정된 파일에 대한 기호 링크로 나타냅니다.
$ readlink -f /proc/20361/fd/1
/tmp/file
답변
어떤 프로세스가 어떤 파일을 열 었는지 확인할 수있는 유용한 도구입니다 lsof
. 로 특정 프로세스를 가리킬 수 있으며 Linux에서 lsof -p1234
얻을 수있는 것과 같은 정보 ls -l /proc/1234/fd
, 즉 어떤 파일이 열려 있는지 대부분 알 수 있습니다 .
가장 유용한 것은 lsof
다른 방법으로 진행하는 것입니다 . lsof /path/to/file
어떤 프로세스가 해당 파일을 사용하고 있는지 알려줍니다.
답변
많은 답변에 다음과 같이 언급했습니다.
tail -f /proc/{PID}/fd/1
그러나 항상 작동하지는 않습니다. 또는 cat
때때로 결과가 생성됩니다.
cat /proc/{PID}/fd/1
여기서 ps aux
명령 을 사용하여 {PID}를 찾을 수 있습니다 .
또한 명령 끝의 숫자 (이 경우 fd / 1)는 다른 출력에 대해 변경 될 수 있습니다.
/proc/{PID}/fd/0 # STDIN
/proc/{PID}/fd/1 # STDOUT
/proc/{PID}/fd/2 # STDERR