我想做以下事情:
我想将进程A链接到文件F,所以:
这可能吗?非常感谢你。
答案 0 :(得分:0)
你已经在Linux上拥有了几乎所有这个属性的文件。如果您创建了一个进程,则进程处于活动状态时将存在/ proc / procNum。例如,如果您的进程号为1050,则/ proc / 1050将一直存在,直到进程终止。我不知道删除此文件是否会终止该过程,但您可以尝试将两者绑定在一起。
答案 1 :(得分:0)
你不应该避免使用PID。它们是进程标识符,并且意味着要使用。
Bash会自动监视它启动的子进程。最新的后台进程ID保存在$!中。 Bash还使用'%n'语法支持作业控制。
您可以使用陷阱SIGCHLD捕获子进程状态更改,并且可以使用wait命令“等待”一个或所有子进程完成。
以下是您的两个流程监控的粗略近似,其中包含“job1”和“job2”正在启动的示例脚本:
job1 & # start job1 in background
j1pid=$! # get its process id
job2 & # start job2 in background
j2pid=$1 # get its process id
trap 'err=1' ERR # trap all errors
err=
wait $j1pid # wait for job1 to complete
# at this point job1 could have completed normally,
# or either process could have had an error
trap - ERR # revert to "normal" handling of most errors
# kill the processes nicely, or abruptly
# kill -TERM sends the TERM signal to the process, which it can trap
# and do whatever pre-exit process is needed.
# kill -9 cannot be trapped.
for pid in $j1pid $j2pid ; do
kill -TERM $pid 2>/dev/null || kill -9 $pid
done