我想知道是否有其他用户正在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 进程本身。为了避免这种情况,您可以使用-w
:grep
watchdog
pgrep
$ pgrep -xl watch
15915 watch
这-x
使得它仅寻找完全匹配,并且-l
还列出进程名称而不仅仅是其 PID。
现在,如果您想检查 MyOwnCommand
和watch
,您可以执行以下操作:
$ pgrep MyOwnCommand >/dev/null && pgrep -xl watch
15915 watch
意味着只有当第一个成功运行时,&&
第二个pgrep
才会运行。丢弃第一个的输出。MyOwnCommand
>/dev/null
pgrep