Command-Line

使用“ps”確定 UNIX 程序工作目錄的最佳方法是什麼?

  • January 23, 2013

我正在執行一個 Ruby 命令行腳本 ( rufus.sh),它最終會呼叫Thread.new,它會生成一個 UNIX 程序,如下所示。我為超過 1 個目錄執行此腳本,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

我不確定這是否能回答您的問題,但pwdx可以為您提供任何程序的目前工作目錄。

像這樣:

pwdx <PID>

你也可以按照 Ulrich Schwarz 所說的執行

ls -l /proc/PID/cwd

也許你會發現它是/proc/(pid)/cwd. 看起來很像,但我不太自在/proc

引用自:https://unix.stackexchange.com/questions/22863