nohup 命令本身不提供直接的超时功能。但是,你可以结合其他命令来实现这个需求。一个常用的方法是使用 timeout 命令。下面是一个示例:
timeout <seconds> nohup your_command &
将 <seconds> 替换为你想要的超时时间(以秒为单位),将 your_command 替换为你要执行的命令。
例如,如果你想要在 60 秒后超时并运行 my_script.sh,你可以这样操作:
timeout 60 nohup ./my_script.sh &
这将在后台运行 my_script.sh,并在 60 秒后自动终止它。如果脚本在超时时间内完成,timeout 命令将正常退出,不会杀死脚本进程。如果你想要在超时后强制杀死脚本进程,可以使用 kill 命令:
timeout <seconds> nohup your_command & sleep <seconds>
kill $!
将 <seconds> 替换为你想要的超时时间(以秒为单位),将 your_command 替换为你要执行的命令。这个方法会在超时后发送一个 SIGKILL 信号给脚本进程,强制终止它。