我想在背景中发情。例如,我正在运行
strace -esetsid setsid sleep 123
但是我想继续运行其他东西,直到setsid返回。显然,只需将&附加到
sleep 123
被解释为跟踪命令的一部分。那么,我该如何在后台运行它呢?
我使用strace只是为了获得setsid启动的新会话的pid。如果有比strace更好的方法,我也想知道:)
谢谢。
发布于 2018-07-09 19:57:09
试试这个:
setsid -w sleep 123 &
ppid=$! # get the pid of the setsid command that we just launched
pid=`ps --ppid $ppid --no-headers | awk '{ print $1 }'`
(对于-w
,setsid等待进程退出-并作为其父进程继续存在;ps --ppid N
用于选择其父进程是setsid进程的进程-应该只有一个进程-如果子进程在shell执行ps
之前就退出了,则一个也没有。一定要检查这个-然后$pid将是空的)。
https://stackoverflow.com/questions/51244646
复制相似问题