use*_*882 8 shell process-management
假设我使用以下命令运行该进程:
myapp -e -c -f myapp.config > /var/log/myapp/myapp.log 2>&1
Run Code Online (Sandbox Code Playgroud)
过了一会儿,我只有pid
的myapp
过程中,如1234有没有办法让所有标志的命令和输出重定向到myapp.log
通过某种方式只pid
?
Sté*_*las 10
ps -o args= -p "$pid"
Run Code Online (Sandbox Code Playgroud)
将告诉您提供给进程执行的最后一个命令的参数列表(或者如果它没有执行任何命令,则它的父级执行的命令......),前提是该进程之后没有覆盖其参数列表。
ps
将显示 arg 列表与空格连接并达到一个限制,您可以ps
通过添加几个-w
选项来提高某些实现的限制)。在 Linux 上,您可以在/proc/$pid/cmdline
.
lsof +fg -ap "$pid" -d 0-2
Run Code Online (Sandbox Code Playgroud)
将告诉您进程的 stdin、stdout 和 stderr 文件描述符指向什么以及它们被打开的模式(例如,W,AP
对于带有附加的只写,就像>>
在 POSIX shell 中使用了重定向一样)。