发现其他用户是否正在执行 MyOwnCommand 的机器上执行 watch 命令

发现其他用户是否正在执行 MyOwnCommand 的机器上执行 watch 命令

我想知道是否有其他用户正在watch同一台机器上执行命令 X。我该怎么做?

答案1

要查看计算机上正在运行的进程,可以使用ps。这是一个具有大量选项的命令,因此您可能需要查看man ps一下以了解一些相关信息。

要检查是否有人在跑步watch,你可以执行以下操作:

 $ ps aux | grep -w watch
terdon   15915  0.0  0.0  15912  2676 pts/4    S+   15:58   0:00 watch ls
terdon   16123  0.0  0.0  13948  2264 pts/5    S+   15:58   0:00 grep --color -w watch

指示仅匹配整个单词。否则,还会列出类似的进程。但是,这也会返回 grep 进程本身。为了避免这种情况,您可以使用-wgrepwatchdogpgrep

$ pgrep -xl watch
15915 watch

-x使得它仅寻找完全匹配,并且-l还列出进程名称而不仅仅是其 PID。

现在,如果您想检查 MyOwnCommandwatch,您可以执行以下操作:

$ pgrep MyOwnCommand >/dev/null  && pgrep -xl watch
15915 watch

意味着只有当第一个成功运行时,&&第二个pgrep才会运行。丢弃第一个的输出。MyOwnCommand>/dev/nullpgrep

相关内容