Linux - /proc/PID 是什么时候创建的?

Linux - when is /proc/PID created?

我正在编写 Bash 脚本来监视进程并检测它何时崩溃。为此,我正在监视 /proc 目录;

start_my_process;
my_process_id=$!;
until [[ ! -d "/proc/$my_process_pid" ]]; do
   # alert the process is dead and restart it...
done

我能否保证在 Bash 完成执行启动进程的命令之前创建 /proc/ 中的进程条目?或者是否有可能在我执行上述检查时,start_my_process 的条目可能尚未创建?

编辑: 最后我实际上反对自定义解决方案并选择了 monit 这是一个优秀的看门狗工具。

/proc/<pid> 从未创建。这不是一个真正的目录。

/proc 是一个虚拟文件系统。当您打开其中一个 "files" 并从其输出流中读取时,数据由内核提供。由于内核还负责管理进程 <pid>,内核会告诉您 /proc/<pid> 目录存在,只要内核跟踪它就存在。

因为 bash 无法设置 $! 直到进程存在,你绝对可以安全地检查进程在 /proc 下的虚拟目录。