저는 최종적으로 를 호출하는 Ruby 명령줄 스크립트( rufus.sh
) 를 실행하고 있는데 Thread.new
, 이는 아래와 같이 UNIX 프로세스를 생성합니다. 여러 디렉터리에 대해 이 스크립트를 실행했으며 ps
명령의 출력은 아래와 같습니다. 아래의 마지막(가장 오른쪽) 열은 COMMAND
( COMD
)이며 이는 본질적으로 프로세스의 이름입니다. 문제는 COMMAND
작업 디렉터리(프로세스 시작 시 현재 디렉터리)가 포함되지 않는다는 점입니다. 이 문제를 해결하거나 포함시키는 가장 좋은 방법은 무엇입니까 COMMAND
? 고마워요, 치라그
ps -ef | grep runner
web 7532 1 0 Oct08 ? 00:02:08 /usr/local/bin/ruby ./script/runner ./config/jobs/control.rb critical_alert start
web 21114 1 1 Oct09 ? 02:49:28 /usr/local/bin/ruby ./script/runner ./config/jobs/control.rb task start
web 19028 1 1 10:45 pts/0 00:00:34 /usr/local/bin/ruby ./script/runner ./config/jobs/control.rb task start
web 19029 1 0 10:45 pts/0 00:00:10 /usr/local/bin/ruby ./script/runner ./config/jobs/control.rb critical_alert start
답변1
이것이 귀하의 질문에 대한 답변인지 확실하지 않지만 pwdx
모든 프로세스의 현재 작업 디렉토리를 제공합니다.
이와 같이:
pwdx <PID>
Ulrich Schwarz가 말한 것처럼 달릴 수도 있습니다.
ls -l /proc/PID/cwd
답변2
어쩌면 타겟으로 발견하게 될지도 모릅니다 /proc/(pid)/cwd
. 그럴 것 같지만 마음이 편하지 않다 /proc
.
답변3
추가 정보가 모두 필요하지 않은 경우 다음을 시도해 볼 수 있습니다.
ps -ef | grep runner | awk {'print$8'} | xargs which
여덟 번째 열 ps -ef
(내 OS X 시스템의 열이므로 COMD
변경해야 할 수도 있음)을 잡고 which
.
이것은 내 컴퓨터에서 다음과 같이 작동합니다.
$ ps -ef | grep grep
mfc 25780 21222 0 11:54 pts/5 00:00:00 grep grep
$ ps -ef | grep grep | awk {'print$8'}
grep
$ ps -ef | grep grep | awk {'print$8'} | xargs which
/bin/grep