shell 后台运行
使shell脚本后台执行,基本的方法有两种,第一种为在脚本后面追加&符号,第二种为在脚本前面使用nohup命令,结尾再追加&符号
一、后台运行脚本1
1、执行脚本test.sh:./test.sh
2、中断脚本test.sh:ctrl+c
3、在1的基础上将运行中的test.sh,切换到后台并暂停:ctrl+z
4、执行ctrl+z后,test.sh在后台是暂停状态(stopped),使用命令:bg number让其在后台开始运行(“number”是使用jobs命令查到的 [ ]中的数字,不是pid)
5、直接在后台运行脚本test.sh:./test.sh &
6、查看当前shell环境中已启动的任务情况:jobs
7、将test.sh切换到前台运行:fg %number(”number”为使用jobs命令查看到的 [ ] 中的数字,不是pid)
8、中断后台运行的test.sh脚本:先fg %number切换到前台,再ctrl+c;或是直接kill %number
以上两种在后台运行test.sh的方法,当遇到退出当前shell终端时,后台运行的test.sh也就结束了。这是因为以上两种方法使得test.sh在后台运行时,运行test.sh进程的父进程是当前shell终端进程,关闭当前shell终端时,父进程退出,会发送hangup信号给所有子进程,子进程收到hangup以后也会退出。所以要想退出当前shell终端时test.sh继续运行,则需要使用nohup忽略hangup信号。
二、不中断后台运行脚本
1、不中断的在后台运行test.sh:nohup ./test.sh &(test.sh的打印信息会输出到当前目录下的nohup.out中)
2、使用jobs可看到test.sh处于running状态
3、使用ps -ef |grep test.sh可查看到正在运行的test.sh脚本进程
4、退出当前shell终端,再重新打开,使用jobs看不到正在运行的test.sh,但使用ps -ef可以看到
5、在后台不中断的运行test.sh,可以使用nohup忽略hangup信号,或者使用setsid将其父进程改为init进程(进程号为1)
不中断的在后台运行test.sh另一个命令:setsid ./test.sh &
使用ps -ef |grep test.sh可看到test.sh进程的父进程id为1
shell 后台运行相关推荐
- nohup-真正的Shell后台运行
一.&方式 Unix/Linux下一般想让某个程序在后台运行,很多都是使用 & 在程序结尾来让程序自动运行.比如我们要运行mysql在后台: /usr/local/mysql/bin/ ...
- shell:后台运行amp;,日志重定向输出,nohup,grep命令
后台运行命令 在命令行加上&,表示进程到后台执行,如 cmd & 日志输出重定向命令,如 cmp > out.log & Linux默认定义两个变量:1和2; 1表示标准 ...
- python任务提交shell后台运行命令
深度学习在xshell上训练网络模型往往会花费非常久的时间,而在shell上提交训练任务后,关闭电脑的话,程序也会随之中断结束,非常受约束.那么怎么才能够让程序在后台运行,电脑随便关机重启呢? 在sh ...
- linux shell后台运行
当用bash启动一个程序,你可以用在程序后加&,实现程序在后台运行: 例如: watch df -i & 但如果你忘了输入&:但你又不想把程序停止后重新启动: 你可以这么做: ...
- 后台运行 Windows CMD 命令与 BAT 程序
2019独角兽企业重金招聘Python工程师标准>>> Linux Shell 后台运行命令需要在命令之后加一个 &,后台运行程序的话会有选项如 -d Windows 的 C ...
- Linux shell 学习笔记(12)— linux 信号、后台运行脚本、作业控制、定时运行任务
1. 处理信号 1.1 Linux 信号 常见的 Linux 信号如下表所示: 信号 值 描述 1 SIGHUP 挂起进程 2 SIGINT 终止进程 3 SIGQUIT 停止进程 9 SIGKILL ...
- linux shell express,Linux下使Shell 命令脱离终端在后台运行
在Linux下,如果你要执行的shell命令耗时特别长,并且:(1)你的网络不稳定,随时可能断网:或者(2)你在执行了shell命令之后必须要关闭终端软件(例如SecureCRT).你是否遇到过这样的 ...
- linux打开pythonshall,linux系统shell脚本后台运行python程序
python开发的同学们应该都知道怎么样去启动一个python应用,但是一旦我们把python应用部署到linux服务器上该如何启动呢? 方式①:就是使用进程管理工具,比如supervisor.想了解 ...
- linux shell 后台执行脚本的方法 脚本后台运行 后台运行程
我的环境ubuntu 20.04 借鉴 https://blog.csdn.net/ruiyelp/ 方法1: 切断当前的连接后脚本自动断掉 直接在后台运行脚本:./test.sh & 查看当 ...
- linux shell 在后台运行命令
linux shell 在后台运行命令: http://blog.csdn.net/CAIYUNFREEDOM/article/details/6339390 http://blog.sina.com ...
最新文章
- Windows 11正式版将于10月5日推出,说好的支持安卓App没上车
- Nutch编译及集成eclipse+mysql开发环境的部署总结
- web前端学习文档 电子版_web前端工程师要学习那些内容
- 全球及中国工业金刚石微米粉行业十四五规划研究与发展战略分析报告2021年版
- 杀毒软件原理进阶阶段
- PowerShell批量检查域密码弱口令
- 记一次 .NET 某上市工业智造 CPU+内存+挂死 三高分析
- bca ac如何联合索引_BCA的完整形式是什么?
- 南京航空航天大学2020数据结构课设
- 老古语道:十九年头七年寡,鼠年难逢双春年,有何说法?
- Android API级别、代号、发布时间及平台亮点整理
- Windows 10系统中修改用户名的方法
- 2021-01-19 :在pycharm中创建包含anaconda中各种库的环境
- 来一波PY交易吧(交换友链)
- iOS H5 history.back() 返回上一路由 页面白屏
- 计算机与网络之间是红叉,雨林木风win7系统网络连接出现红叉无法上网的解决办法...
- java 自旋_java自旋锁的代码实现
- Git 之二 架构、工作流程、.git 目录文件
- 杰理强制升级工具4.0使用和原理解析
- GBC代理“花生漫画PEANUTS”,遭遇侵权账户冻结应该怎么处理?