nohup 是一个在 Linux 和 Unix 系统中用于在后台运行命令的实用程序,即使用户退出系统或关闭终端,它也会继续运行
以下是一个使用 nohup 的实践案例:
my_script.sh 的 shell 脚本,内容如下:#!/bin/bash
echo "Starting my script..."
# 在这里执行你的任务,例如:
for i in {1..10}; do
echo "This is iteration $i"
sleep 1
done
echo "Finished my script."
确保脚本具有可执行权限:
chmod +x my_script.sh
nohup 在后台运行脚本:nohup ./my_script.sh > output.log 2>&1 &
这将在后台运行 my_script.sh,并将标准输出和标准错误重定向到名为 output.log 的文件。& 符号将命令放入后台运行。
tail -f output.log
这将显示 output.log 文件的最新内容。使用 Ctrl+C 停止实时查看。
ps aux | grep my_script.sh
输出类似于:
user 12345 0.0 0.1 23456 7890 ? Ss Sep01 0:00 ./my_script.sh
user 67890 0.0 0.1 23456 7890 ? S Sep01 0:00 grep --color=auto my_script.sh
在这个例子中,进程 ID 是 12345。要停止该进程,请使用 kill 命令:
kill 12345
现在,my_script.sh 已经停止运行,你可以随时重新启动它。