我知道您可以通过几种不同的方式找到进程的工作目录,但是有什么方法可以反向执行吗?我有一些用节点编写的服务器应用程序,不幸的是很难区分进程(它们都显示node server.js
在ps
输出中),并且我想有一种简单的方法来确定特定服务器是否正在运行。
换句话说,我需要回答的问题是:给定目录/x/y/z
,node server.js
工作目录中/x/y/z
是否运行有进程?
目前,我最好的尝试是进行操作ps -ef | grep "[n]ode server.js"
,剪切PID并对其进行循环,检查pwdx
每个PID。它可以工作,但是很麻烦,我想知道是否有更好的方法。
由于pwdx接受PIDS,因此您可以使用:
$ pwdx $(ps -C "node server.js" --format pid --no-headers)
2781: /home/user
4405: /home/user/src.git/
并可能在.zshrc或.bashrc中定义一个函数:
function select_by_dir()
{
if (( $# == 0))l then
pwdx $(ps -C "node server.js" --format pid --no-headers)
else
pwdx $(ps -C "node server.js" --format pid --no-headers) | grep $1
fi
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句