如何通过PID获取bash脚本启动的后台进程实际执行命令?
如何获取后台进程的实际执行命令
当然可以,以下几种方式能帮你拿到目标PID对应的实际执行命令:
读取/proc文件系统的进程信息:
Linux系统中每个进程都会在/proc目录下生成一个以PID命名的子目录,里面的cmdline文件存储了进程启动时的完整命令行(参数间用null字符分隔)。针对PID 10002,执行:cat /proc/10002/cmdline | tr '\0' ' '这条命令会把null字符替换成空格,直接显示出实际执行的
./path/to/my/other/script.sh。使用ps的详细输出参数:
执行ps -fp 10002,该命令会输出进程的完整命令行,能直接看到实际启动的脚本路径,而非仅显示父脚本名称。查看进程树结构:
运行pstree -p 10002,可以清晰展示该PID对应的进程与父进程的关系,同时显示实际执行的命令内容。
你看到ps输出里多个/bin/bash main_script.sh,是因为后台启动的shell脚本会fork出bash子进程执行,但这些子进程的实际命令信息不会丢失,通过上面的方法就能准确获取。
内容的提问来源于stack exchange,提问作者s0la
相关产品推荐
相关产品推荐

