linux后台运行命令总结
linux后台运行命令总结
问题:
我们有时候需要登录远程服务器跑运行时间非常长的脚本,这个时候你要让脚本后台运行,不然占着终端窗口看着不舒服。但万一网络不好,(比如我这儿的破校园网,高峰时几秒钟断一次),终端突然和服务器之间的连接断了,那脚本就会自动停了(因为运行test.sh进程的父进程就是当前的shell终端进程,关闭当前shell终端时,父进程退出,会发送hangup信号给所有子进程,子进程收到hangup以后也会退出)。
解决思路:1. 实现脚本的后台运行
2.忽略hangup信号,使得终端关闭时,脚本仍在继续运行。
实现脚本后台运行很简单
最简单的后台运行是:&,你可以在命令结束后加一个&,以表示该命令在后台运行而不会占用你的命令窗口:
接下来就是实现忽略hangup 信号
nohup命令:
nohup 是 no hungup的缩写,以为“不挂断”,我们在使用Xshell等工具执行Linux脚本时,有时候会由于网络问题,导致失去连接,终端断开,程序运行一半就意外结束了。这种时候,就可以用nohup指令来运行指令,使程序可以忽略挂起信号继续运行。
nohup和&的区别
&:是指在后台运行,当用户退出(挂起)的时候,命令自动跟着结束
nohup:不挂断的运行,注意并没有后台运行的功能,就是指用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如我们断开SSH连接都不会影响他的运行,注意了nohup没有后台运行的意思;&才是后台运行
因此将nohup和&结合使用,就可以实现使命令永久地在后台执行的功能
在当前shell窗口下使用后台运行命令后可以使用命令 :jobs 来显示当前的后台运行进程。(下面的操作局限于当前窗口的后台)
输出重定向
作业在后台运行的时候,可以把输出重定向到某个文件中,相当于一个日志文件,记录运行过程中的输出。使用方法:
command>out.file是将command的输出重定向到out.file文件,即输出内容不打印到屏幕上,而是输出到out.file文件中。
在上面的例子中,0 – stdin (standard input),1 – stdout (standard output),2 – stderr (standard error) ;
2>&1 是将标准错误(2)重定向到标准输出(&1),标准输出(&1)再被重定向输入到out.file文件中。
这些信号中只有第 9 种信号(SIGKILL)才可以无条件的终止进程,其他信号进程都有权利忽略。并且这么多的信号中常用的也不多,下面我们解释几个常用信号的含义。
代号 名称 内容
1 SIGHUP 启动被终止的程序,可让该进程重新读取自己的配置文件,类似重新启动。
2 SIGINT 相当于用键盘输入 [ctrl]-c 来中断一个程序的进行。
9 SIGKILL 代表强制中断一个程序的进行,如果该程序进行到一半,那么尚未完成的部分可能会有“半产品”产生,类似 vim会有 .filename.swp 保留下来。
15 SIGTERM 以正常的方式来终止该程序。由于是正常的终止,所以后续的动作会将他完成。不过,如果该程序已经发生问题,就是无法使用正常的方法终止时,输入这个 signal 也是没有用的。
19 SIGSTOP 相当于用键盘输入 [ctrl]-z 来暂停一个程序的进行。
nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。nohup就是不挂起的意思( n ohang up)。
该命令的一般形式为:nohup command &
使用nohup命令提交作业
如果使用nohup命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件:
nohup command > myout.file 2>&1 &
后台重定向 文件 说明
Linux - 程序后台运行命令
https://blog.csdn.net/trustnature/article/details/119923211
linux后台运行命令总结相关推荐
- linux后台运行命令,nohup
linux后台运行命令 1.& 当结束终端时,进程就会停止 command & 例子: ./test.sh & 2.nohup 为不挂起进程的意思 如下时会使得应用在关闭终端时 ...
- linux+后台运行+nohup,Linux后台运行命令集(、fg、bg、jobs、nohup、ctrl + z)
Linux后台运行命令集(&.fg.bg.jobs.nohup.ctrl + z) 1).& 命令或进程最后加上"&",可以把此操作放到后台执行: 2).c ...
- nohup ——Linux后台运行命令
在 Linux 终端上执行命令的通常风格是简单地运行它并等待它正常退出,命令退出后,可以继续连续执行其他命令,这就是所谓的在前台运行命令.正如这个词所暗示的那样,您可以在终端上直观地看到命令的输出. ...
- linux后台运行命令
当我们在终端或控制台工作时,可能不希望由于运行一个作业而占住了屏幕,因为可能还有更重要的事情要做,比如阅读电子邮件.对于密集访问磁盘的进程,我们更希望它能够在每天的非负荷高峰时间段运行(例如凌晨).为 ...
- linux系统让一个命令在后台运行,Linux——Linux后台运行命令详述
本次主要讲述后台运行命令(crontab,at,&,nohup)及(*,?,[])等 • 设置c r o n t a b文件,并用它来提交作业. • 使用a t命令来提交作业. • 在后台提交 ...
- Linux后台运行命令 nohup command myout.file 21
Linux命令后台运行 转自北国的雨,谢谢:http://www.cnblogs.com/lwm-1988/archive/2011/08/20/2147299.html 有两种方式: 1. comm ...
- linux后台运行命令screen的使用
在我们通过终端或ssh连接服务器使用时候,有时候一个训练程序可能需要训练几天才能完成,但是我们的终端可能会在几个小时后自动断开,就会导致训练程序终止,解决方法就是使用screen工具: 先介绍scre ...
- linux后台运行命令和杀除命令
1.ping 100.102.114.1 > 1.txt & #这时候已经在后台进行了 2.上面的命令敲完之后其实可以看到进程好和id和执行的命令 通过:kill %id ...
- linux关闭后台运行命令,linux后台运行、关闭、查看后台任务常用命令
一.& 加在一个命令的最后,可以把这个命令放到后台执行,如: [root@bqh-01 ~]# watch -n 3 "sh 1.sh" #每3s在后台执行一次1.sh脚 ...
最新文章
- 2021年大数据Spark(四十八):Structured Streaming 输出终端/位置
- 开源!《AI 算法工程师手册》中文教程正式发布!
- 培训第二弹:全国大学生智能汽车竞赛百度竞速组预告
- Metasploit远程调用Nessus出错
- python3 错误string indices must be integers 的解决方法
- C++ leetcode 12. 整数转罗马数字 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。
- P2024 食物链 (补集)
- 【转】visual studio 2010失败或.net framework 4.0 0xc8000247错误解决
- mysql数据库sql语句优化
- 两个不同的数据库如何跨库事务
- 【剑指offer】面试题25:合并两个排序的链表(Java 实现)
- mysql Windows导入sql 失败
- leetcode 字符串中的第一个唯一字符
- openssl、libosip2、libeXosip2三个库的编译过程
- java nio 多路复用_8分钟深入浅出搞懂BIO、NIO、AIO
- 蓝桥杯 ALGO-31算法训练 开心的金明(01背包,动态规划)
- 安装指定的vue-router版本
- Java8新特性详解
- 微信公共平台开发(一):服务器配置
- MER:高通量测序应用于病原体和害虫诊断——综述与实用性建议
热门文章
- 其他手机怎么安装鸿蒙系统,国内其它的手机厂家不想安装鸿蒙吗?
- aspose.cad使用工具类,及遇到的问题
- python 字典生成树状图
- python根据文本特征进行切块处理
- word中插入的图片的环绕方式
- Docker学习之路05:五分钟用docker compose搭建一个自己的个人博客网站!
- java学习之心得体会
- python零基础入门pdf-零基础入门学习Python PDF 扫描版
- iOS开发-小白(新手)必看,基础常识
- Sketch: Creating Vector Graphics Sketch教程:创建矢量图形 Lynda课程中文字幕