我可以在bash中将进程链接到文件吗?
我想做以下工作: 我想将进程a链接到文件F,因此:我可以在bash中将进程链接到文件吗?,bash,process,ipc,Bash,Process,Ipc,我想做以下工作: 我想将进程a链接到文件F,因此: 如果F消失,A崩溃 F只在A结束时消失 这可能吗?非常感谢。在Linux上,您已经有了一个几乎具有此属性的文件。如果创建了一个进程,/proc/procNum将在该进程处于活动状态时存在。例如,如果进程编号为1050,则/proc/1050将一直存在,直到进程结束。我不知道删除此文件是否会终止进程,但您可以尝试将两者结合起来。您不应该避免使用PIDs。它们是进程标识符,并且应该被使用 Bash自动监视它启动的子进程。最新的后台进程id保存在
- 如果F消失,A崩溃
- F只在A结束时消失
这可能吗?非常感谢。在Linux上,您已经有了一个几乎具有此属性的文件。如果创建了一个进程,/proc/procNum将在该进程处于活动状态时存在。例如,如果进程编号为1050,则/proc/1050将一直存在,直到进程结束。我不知道删除此文件是否会终止进程,但您可以尝试将两者结合起来。您不应该避免使用PIDs。它们是进程标识符,并且应该被使用 Bash自动监视它启动的子进程。最新的后台进程id保存在$!。Bash还支持使用“%n”语法的作业控件 您可以使用trap 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
如果你说了你想要完成的事情,可能会有帮助。我想监控两个进程,所以如果其中一个崩溃,那么让另一个也崩溃。我读到用它的PID杀死它不是一个好方法,因为另一个进程可以用相同的PID启动。正因为如此,我正在寻找一种避免使用PIDs的方法。谢谢你提供的信息!我已经检查过了,它是一个包含很多文件的目录。我不能删除它(即使我使用sudo),所以我不能做我正在寻找的事情。无论如何,谢谢你:)