nohup 命令本身不提供设置超时时间的功能
方法一:使用 timeout 命令
timeout 命令允许你为其他命令设置超时时间。例如,如果你想让一个名为 my_script.sh 的脚本在 10 秒后自动停止,可以使用以下命令:
timeout 10 nohup ./my_script.sh &
这将在 10 秒后终止 my_script.sh 脚本的执行。注意,& 符号将命令放入后台运行。
方法二:使用 sleep 和 kill 命令
如果你不想使用 timeout 命令,可以使用 sleep 和 kill 命令组合来实现超时功能。例如,如果你想让一个名为 my_script.sh 的脚本在 10 秒后自动停止,可以使用以下命令:
nohup ./my_script.sh &
pid=$!
sleep 10
kill $pid 2>/dev/null
这里,& 符号将命令放入后台运行,$! 获取后台进程的进程 ID。sleep 10 命令会让脚本等待 10 秒,然后 kill $pid 命令会终止该进程。2>/dev/null 会将 kill 命令产生的错误信息重定向到 /dev/null,以免干扰输出。
这两种方法都可以实现在 Linux 中使用 nohup 命令设置超时时间的目的。