我有一个名为 foo 的脚本,它运行程序 a.exe 并将计时统计信息发送到文件 time.log
#!/bin/bash
date 1>> time.log
(time ./a.exe) 2>> time.log
如果我在终端后台运行脚本并保持 shell 打开直到 a.exe 完成,则此方法有效,但如果我在后台运行脚本并退出终端(a.exe 需要很长时间才能运行)
foo &
exit
当我回来时,a.exe 已执行,但时间统计信息未出现在我的日志文件中。有人知道为什么吗?有没有办法在关闭父 shell 后获取计时统计信息?
thanks
nohup foo &
当您退出 shell 时,它会向所有子进程发送 SIGHUP 信号,默认情况下会杀死它们。如果您希望进程在父 shell 退出时继续执行,那么您需要让它忽略 SIGHUP。
NAME
nohup -- 调用不受挂起影响的命令
SYNOPSIS
nohup utility [arg ...]
描述
The nohup实用程序使用其参数调用命令,此时将信号 SIGHUP 设置为忽略。如果标准输出是终端,则标准输出将附加到当前目录中的 nohup.out 文件中。如果标准错误是终端,则它会定向到与标准输出相同的位置。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)