Linux nohup命令和&

参考资料

  1. linux后台运行nohup命令的使用及2>&1字符详解


前期准备

📄handle_file.sh

#!/bin/bash

echo "文件复制开始..."

# 使脚本睡眠10秒中,模拟文件复制耗时操作...
sleep 120

echo "文件复制结束..."

一. 基本语法

nohup命令可以确保即使终端会话结束,输入的命令也能够持续运行。
常见的应用场景包括长时间运行的任务,如备份、数据处理等。

例如当我们执行一个备份命令需要花费10个小时,我们不需要一直守在电脑上等待备份完成,完全可以在终端上执行完命令之后,直接关掉终端做别的时候,然后第二天再来确认备份是否完成。

nohup 命令 [参数] &
  • &:表示将命令放在后台执行。
  • > result.log:将脚本的执行结果输出到result.log这个文件中
  • 2>&1:是一个整体,>左右不能有空格,即将错误内容重定向输入到标准输出中去。
    相当于将handle_file.sh脚本执行过程中出现的错误输出到result.log文件中。
    • 0 表示stdin标准输入,用户键盘输入的内容
    • 1 表示stdout标准输出,输出到显示屏的内容
    • 2 表示stderr标准错误,报错的内容
  • /dev/null:此处的作用只是为了避免nohup: ignoring input这个提示消息被添加到result.log文件中,该消息的产生并不影响程序执行,该配置项加不加无所谓。
# 如果sh脚本有执行权限的执行方法
nohup ./handle_file.sh > result.log 2>&1 < /dev/null &
# 如果sh脚本没有执行权限的执行方法
nohup sh ./handle_file.sh > result.log 2>&1 < /dev/null &

二. 执行时不指定日志文件

  • 若不指定具体的日志文件,默认会在当前所在路径下产生一个nohup.out文件用来存放执行过程中的日志。
nohup sh ./handle_file.sh &

在这里插入图片描述


三. 执行后不想要日志文件

  • 若执行过程中不想要日志,可以把正常输出和错误都放到/dev/null中进行销毁
  • /dev/null 是一个特殊的设备文件,在 Linux 和类 Unix 系统中用于丢弃数据。
    当将输出重定向到 /dev/null 时,数据实际上不会被写入到任何地方,而是被丢弃。
    因为 /dev/null 文件不会保存数据,也不会产生任何输出。
nohup sh ./handle_file.sh > /dev/null 2>&1 &

在这里插入图片描述


四. nohup命令的执行与kill

4.1 执行

  • 执行之后可以看到sh脚本的线程号,本案例中,线程号为 7051
  • 执行之后还可以通过 ps -ef | grep "脚本名"来查询在后台的状况
  • 因为我们在sh脚本中设置了线程睡眠,因此刚执行完之后,立马查看result.log内容只有一行
nohup sh ./handle_file.sh > result.log 2>&1 < /dev/null &

在这里插入图片描述
在这里插入图片描述

4.2 kill

⏹如果脚本执行之后很长时间还是没有执行完,可以通过kill命令杀死脚本线程,强制结束

语法

kill -9 要杀死的线程PID

在这里插入图片描述

相关推荐

  1. ifconfig命令ip命令

    2024-02-12 13:16:03       38 阅读
  2. mkdir命令mkdirs命令

    2024-02-12 13:16:03       7 阅读
  3. Git 流程命令

    2024-02-12 13:16:03       45 阅读
  4. letconst命令

    2024-02-12 13:16:03       12 阅读
  5. cdpwd命令

    2024-02-12 13:16:03       3 阅读
  6. Linux———chown命令chgrp命令详解

    2024-02-12 13:16:03       32 阅读
  7. Docker:镜像命令容器命令

    2024-02-12 13:16:03       11 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-12 13:16:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-12 13:16:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-12 13:16:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-12 13:16:03       20 阅读

热门阅读

  1. 求小数的某一位(c++题解)

    2024-02-12 13:16:03       31 阅读
  2. H5/CSS 笔试面试考题(61-70)

    2024-02-12 13:16:03       34 阅读
  3. VSCode官方历史版本下载

    2024-02-12 13:16:03       38 阅读
  4. Leetcode 3035. Maximum Palindromes After Operations

    2024-02-12 13:16:03       37 阅读
  5. Ubuntu搭建计算集群

    2024-02-12 13:16:03       41 阅读
  6. 装箱问题+宠物小精灵之收服+数字组合——01背包

    2024-02-12 13:16:03       28 阅读
  7. 龙芯安装Docker

    2024-02-12 13:16:03       28 阅读
  8. 学习数据结构和算法的第7天

    2024-02-12 13:16:03       33 阅读
  9. JVM调优的一些常用技术

    2024-02-12 13:16:03       28 阅读
  10. 缓存雪崩问题与应对策略

    2024-02-12 13:16:03       37 阅读