记录所有手动启动的 shell 中启动的后台作业?

记录所有手动启动的 shell 中启动的后台作业?

例如,有时我不小心杀死了 shell 中的所有后台作业,因为Wine下运行的Window程序的窗口默认不在前面

我知道我可以使用nohupordisown来保护它们在杀死 shell 或其终端仿真器进程时不被杀死。但如果我的操作系统被冻结,我必须重新启动操作系统,并且nohup不能disown保存任何后台进程。

有没有办法定期或手动记录在 shell 进程或所有 shell 进程(特别是手动启动的进程)中运行的后台作业的命令?

我的想法是编写一个脚本,该脚本在所有 shell 进程中定期执行,并且对于每个 shell 进程,它只会将 stdout 输出附加jobs到共享文本文件。但我不确定如何让它经历所有 shell 进程,以及如何减少任何重复的命令。我想以一种可以直接将日志文件作为 shell 脚本执行以重新运行命令的方式来记录命令

谢谢。

相关内容