当前位置: 首页 > article >正文

linux shell脚本后台运行

1、使用 & 符号

# ./XXX.sh &

缺点:关闭当前终端会话窗口,脚本将结束运行

2、使用 nohup 命令

允许注销后继续运行命令,通常与 & 符号结合使用,将输出重定向到一个文件(默认是 nohup.out)。

# nohup ./XXX.sh &

可以指定输出文件:

# nohup ./XXX.sh > output.log 2>&1 &

2>&1 表示将标准错误(stderr)重定向到标准输出(stdout),这样所有输出都会写入 output.log 文件。

3、使用 disown 命令

如果已在前台运行了一个命令,并希望将其移到后台,可以使用 Ctrl-z 暂停该命令,然后使用 bg 将其放到后台,最后用 disown 从 shell 的作业控制中移除它。

运行脚本(假设忘记了添加 &):

# ./XXX.sh

按下 Ctrl-z 暂停脚本:

# ./XXX.sh 
......
^Z
[1]+  已停止               ./XXX.sh
#  

将脚本放到后台:

# jobs
[1]+  已停止               ./start.sh
# bg
[1]+ ./start.sh &
# jobs
[1]+  运行中               ./start.sh &

从作业控制中移除脚本:

# disown
# jobs
#

使用 jobs 命令查看当前 shell 中的作业列表,确认脚本成功移到后台。

4、使用工具 screen 或 tmux

screen 和 tmux 是两个终端复用工具,允许在一个会话中运行多个窗口或面板,并且可以分离(detach)和重新连接(attach)到这些会话。

4.1 使用 screen

启动一个新的 screen 会话:
screen -S my_session

在 screen 会话中运行脚本:
./XXX.sh

按下 Ctrl-a 然后按 d 来分离(detach)会话。

可以通过以下命令重新连接到会话:
screen -r my_session

4.2 使用 tmux

启动一个新的 tmux 会话:
tmux new -s my_session

在 tmux 会话中运行脚本:
./XXX.sh

按下 Ctrl-b 然后按 d 来分离(detach)会话。

可以通过以下命令重新连接到会话:
tmux attach -t my_session
 


http://www.kler.cn/a/370155.html

相关文章:

  • 【经验分享】ARM Linux-RT内核实时系统性能评估工具
  • AI需要的基础数学知识
  • 工业相机 SDK 二次开发-Halcon 插件
  • 【K8S系列】K8s 领域深度剖析:年度技术、工具与实战总结
  • Linux系统 C/C++编程基础——使用make工具和Makefile实现自动编译
  • (10)深入浅出智能合约OpenZeppelin开源框架
  • 面试官:说一下Spring 中的 @Cacheable 缓存注解?
  • 3d Max下载|3ds MAX全版本安装教程网盘资源
  • WEB 统一接口返回和异常处理
  • 先来先服务(FCFS,First-Come, First-Served)调度算法
  • 人工智能:重塑未来生活与工作的变革者
  • python-numpy-笔记1
  • 名词(术语)了解--CSSOM (CSS Object Model)
  • SLAM|1. 相机投影及相机畸变
  • 从理解路由到实现一套Router(路由)
  • 九,Linux基础环境搭建(CentOS7)- 安装Sqoop
  • 【ROS 基础教学系列】机器人仿真运动控制
  • 5款项目管理软件,帮你做好任务管理
  • 自定义Widget插入QListWidget中,大量数据会卡问题
  • unity3D 导入图片与设置
  • 微信小程序-转发/分享/手机号验证/客服
  • uniapp实现左滑删除(详解)
  • python代码中通过pymobiledevice3访问iOS沙盒目录获取app日志
  • C语言中的数组并非指针:深入理解数组和指针的区别
  • EasyPlayer.js网页播放器,支持FLV、HLS、WebSocket、WebRTC、H.264/H.265、MP4、ts各种音视频流播放
  • PHP轻松阅读图书借阅系统小程序源码