![如何以任何名称启动一个不执行任何操作的进程?](https://linux22.com/image/60316/%E5%A6%82%E4%BD%95%E4%BB%A5%E4%BB%BB%E4%BD%95%E5%90%8D%E7%A7%B0%E5%90%AF%E5%8A%A8%E4%B8%80%E4%B8%AA%E4%B8%8D%E6%89%A7%E8%A1%8C%E4%BB%BB%E4%BD%95%E6%93%8D%E4%BD%9C%E7%9A%84%E8%BF%9B%E7%A8%8B%EF%BC%9F.png)
我想启动一个不执行任何操作但仍在运行的进程。假设我启动了一个名为 的进程sadhadxk
,当我运行时,pgrep -x "sadhadxk"
我会得到 PID 号,就像任何正常进程一样。
那么有没有办法启动一个虚拟进程呢?
答案1
你可以这样做:
perl -MPOSIX -e '$0="sadhadxk"; pause' &
它应该在支持它的系统上设置进程名称和 argv[0],因此应该sadhadxk
在ps
和输出中显示,因此应该与和ps -f
匹配。pgrep -x
pgrep -fx
答案2
> bash -c 'exec -a sadhadxk sleep 1000000' &
pgrep
不起作用但是
> ps | grep '[s]adhadxk'
18931 [...] sadhadxk 1000000
更正:pgrep
确实有效,但不适用于命令名称(这是正在运行的二进制文件的名称),仅适用于命令行:
> pgrep -f sadhadxk
18931
答案3
尝试这样做:
sleep 600 &