美文网首页
使用nohup命令在后台执行程序

使用nohup命令在后台执行程序

作者: BioX生物信息学 | 来源:发表于2025-01-24 22:24 被阅读0次

`nohup` 命令(“no hang up”)允许用户运行一个命令,并且该命令在用户退出登录或关闭终端后仍然继续运行。

## 示例 1

```bash

nohup sleep 10 > nohup.out 2>&1 &

# 其中,`sleep 10` 是想要执行的命令(可进行相应替换);

# `> nohup.out 2>&1` 是将标准输出和标准错误输出重定向到 `nohup.out` 文件,这样可以记录命令的输出信息。如果不进行重定向,输出信息会默认重定向到 `nohup.out` 文件。

# `&` 操作符将命令置于后台运行;

```

## 示例 2

可以写成脚本(如"run_in_background.sh"脚本),便于后续重复使用。

``` bash

#!/usr/bin/bash

# 检查是否传入命令作为参数

if [ $# -eq 0 ]; then

  echo "请提供一个命令作为参数。"

  exit 1

fi

# 获取当前目录的绝对路径

current_dir=$(pwd)

# 检查是否传入日志文件作为参数

if [ $# -gt 1 ]; then

  log_file=$2

else

  log_file=${current_dir}/run.log # 设置默认日志文件名

fi

# 确保日志文件路径存在

log_dir=$(dirname "$log_file")

if [ ! -d "$log_dir" ]; then

  mkdir -p "$log_dir"

fi

# 使用 nohup 执行传入的命令并将其放入后台运行,同时将输出重定向到指定的日志文件

nohup $1 >> $log_file 2>&1 &

# 输出进程ID到日志文件

echo "后台进程ID: $!" >> $log_file

```

https://gitee.com/biox-lab/biclass.biox/blob/master/%E4%BF%AE%E4%B8%9A/Computer-Sciences/OS-Operating-System/Linux/Process/%E4%BD%BF%E7%94%A8nohup%E5%91%BD%E4%BB%A4%E5%9C%A8%E5%90%8E%E5%8F%B0%E6%89%A7%E8%A1%8C%E7%A8%8B%E5%BA%8F.md

#Linux #Process #nohup

相关文章

网友评论

      本文标题:使用nohup命令在后台执行程序

      本文链接:https://www.haomeiwen.com/subject/gtrlujtx.html