获取通过 at 执行的长时间运行命令的 pid

获取通过 at 执行的长时间运行命令的 pid

我想生成一个持久netcat服务器。我选择的命令如下:

echo "bash -c \"while [ 1 ]; do nc -l -p 1111 >> check; done\"" | at now

我想知道如何获取创建的进程的 PID,at以便我可以在需要时轻松地将服务器置于睡眠状态。

答案1

由于引用,这有点棘手,请注意从 " 更改为 '

at如果您通过以下方式提交作业,则以下操作将起作用at -f file

at -f nc.on now
cat nc.on
bash -c 'while [ 1 ]; do echo $$ > /var/run/atnc.pid; nc -l -p 1111  >> check; done'

该文件/var/run/atnc.pid将具有正在运行 nc 的 bash 的进程 ID

您可以 cat 该文件以获取 bash 进程 ID 并杀死它,从而终止 nc。然后rm /var/run/atnc.pid (可选)。

相关内容