这是我第一次在这里问,所以请裸露在我身边。我已经使用了这个问题,但从未发现任何对我的特殊情况有用的东西。如何在bash中找到运行命令的PID?
所以,我想弄清楚一个特定命令的PID正在运行,所以我可以在必要时杀死它。我知道这是可能通过键入echo $!
所以理应
my_command & echo $!
应该给我的PID得到命令的PID。但是,这是不是这样,我想我知道为什么: 我的命令如下:
screen -d -m -S Radio /path/to/folder -f frequency -r path/to/song
以使之得到执行打开分离screen
第一,然后类型的命令,并不断在后台运行。这样,echo
显示我的PID是错误的。我猜测它显示我的PID为screen -d -m -S Radio /path/to/folder -f frequency -r path/to/song
,而不是由屏幕创建的新终端中运行的命令的PID。
但还有另一个问题:当我在终端中运行screen -ls
时,在后台运行的命令不显示!我相当肯定它正在运行,因为Pi的CPU使用率一直在25%(而不是0%或1%),当我输入ps au
时,我可以看到命令和PID。
所以现在我打电话给社区:关于如何在新终端中找到某个命令的PID的任何想法?我正在编写一个bash脚本,因此必须通过代码来获取PID。完美将是一个将PID存储在变量中的命令!
在此先感谢!
SO用于编程问题,而不是关于使用或配置Linux的问题。 SuperUser.com或unix。stackexchange.com将是更好的地方这样的问题。 – Barmar
'pgrep -f search_pattern' - 如果输出用于人类消费,则添加'-l'标志。 –
谢谢@glennjackman,您的评论为我工作。不知怎的,我现在有命令的PID! – Zebiano