Linux 我该怎么做?

Linux 我该怎么做?,linux,Linux,我的机器和一些其他ruby进程上运行了一些ruby脚本。我唯一能将它们与top区分开来的方法是执行top-c(这样我就可以看到命令,否则一切都是“ruby”) 我希望能够观察有多少脚本正在运行,以便在一个脚本失败时重新启动它们 我想我可以用top-c-n1 | grep“script name”实现这一点,但我不知道如何tail-f实现这一点,或者该命令是否是首先实现这一点的最佳方法 我认为top在这里不是最好的选择,因为它是一个交互式命令,您无法真正将其整个输出管道化(可能有办法)。使用ps是

我的机器和一些其他ruby进程上运行了一些ruby脚本。我唯一能将它们与top区分开来的方法是执行top-c(这样我就可以看到命令,否则一切都是“ruby”)

我希望能够观察有多少脚本正在运行,以便在一个脚本失败时重新启动它们


我想我可以用
top-c-n1 | grep“script name”
实现这一点,但我不知道如何
tail-f
实现这一点,或者该命令是否是首先实现这一点的最佳方法

我认为
top
在这里不是最好的选择,因为它是一个交互式命令,您无法真正将其整个输出管道化(可能有办法)。使用
ps
是一种非常公平的方法:

ps -e -o pid,cmd | grep "script-name"
如果您想定期对此进行调查,还可以使用
监视

watch 'ps -e -o pid,cmd | grep "script-name"'
一般来说,grep
ps
output是一种不好的做法,但我认为在您的情况下会起作用。如果您只需要与模式匹配的正在运行的进程的数量,或者只需要它们的PID,那么最好使用
pgrep

pgrep "script-name"