[每日一学] 使程序在Linux下后台运行
作者:CC下载站 日期:2020-08-06 00:00:00 浏览:50 分类:涨姿势
一、为什么要使程序在后台执行
我们计算的程序都是周期很长的,通常要几个小时甚至一个星期。我们用的环境是用putty远程连接到日本Linux服务器。所以使程序在后台跑有以下三个好处:
1:我们这边是否关机不影响日本那边的程序运行。(不会像以前那样,我们这网络一断开,或一关机,程序就断掉或找不到数据,跑了几天的程序只能重头再来,很是烦恼)
2:不影响计算效率
2:让程序在后台跑后,不会占据终端,我们可以用终端做别的事情。
二、怎么样使程序在后台执行
方法有很多,这里主要列举两种。假如我们有程序pso.cpp,通过编译后产生可执行文件pso,我们要使pso在linux服务器后台执行。当客户端关机后重新登入服务器后继续查看本来在终端输出的运行结果。(假设操作都在当前目录下)
方法1在终端输入命令:
# ./pso > pso.file 2>&1 &
解释:将pso直接放在后台运行,并把终端输出存放在当前目录下的pso.file文件中。
当客户端关机后重新登陆服务器后,直接查看pso.file文件就可看执行结果(命
令:#cat pso.file)。
方法2在终端输入命令:
# nohup./pso > pso.file 2>&1 &
解释:nohup就是不挂起的意思,将pso直接放在后台运行,并把终端输出存放在当前
目录下的pso.file文件中。当客户端关机后重新登陆服务器后,直接查看pso.file
文件就可看执行结果(命令:#cat pso.file)。
三、常用任务管理命令
# jobs//查看任务,返回任务编号n和进程号
# bg%n//将编号为n的任务转后台运行
# fg%n//将编号为n的任务转前台运行
# ctrl+z//挂起当前任务
# ctrl+c//结束当前任务
注:如果要使在前天执行任务放到后台运行,则先要用ctrl+z挂起该任务,然后用bg使之后台执行。
附:
在Linux中,如果要让进程在后台运行,一般情况下,我们在命令后面加上&即可,实际上,这样是将命令放入到一个作业队列中了:
$./test.sh&[1]17208$jobs-l[1]+17208Running./test.sh&
对于已经在前台执行的命令,也可以重新放到后台执行,首先按ctrl+z暂停已经运行的进程,然后使用bg命令将停止的作业放到后台运行:
$./test.sh[1]+Stopped./test.sh$bg%1[1]+./test.sh&$jobs-l[1]+22794Running./test.sh&
但是如上方到后台执行的进程,其父进程还是当前终端shell的进程,而一旦父进程退出,则会发送hangup信号给所有子进程,子进程收到hangup以后也会退出。如果我们要在退出shell的时候继续运行进程,则需要使用nohup忽略hangup信号,或者setsid将将父进程设为init进程(进程号为1)
$echo$$21734$nohup./test.sh&[1]29016$ps-ef|greptest5152971021734011:47pts/1200:00:00/bin/sh./test.sh5152971321734011:47pts/1200:00:00greptest
$setsid./test.sh&[1]409$ps-ef|greptest5154101011:49?00:00:00/bin/sh./test.sh51541321734011:49pts/1200:00:00greptest
上面的试验演示了使用nohup/setsid加上&使进程在后台运行,同时不受当前shell退出的影响。那么对于已经在后台运行的进程,该怎么办呢?可以使用disown命令:
$./test.sh&[1]2539$jobs-l[1]+2539Running./test.sh&$disown-h%1$ps-ef|greptest5154101011:49?00:00:00/bin/sh./test.sh515254221734011:52pts/1200:00:00greptest
另外还有一种方法,即使将进程在一个subshell中执行,其实这和setsid异曲同工。方法很简单,将命令用括号() 括起来即可:
$(./test.sh&)$ps-ef|greptest5154101011:49?00:00:00/bin/sh./test.sh5151248321734011:59pts/1200:00:00greptest
注:本文试验环境为Red Hat Enterprise Linux AS release 4 (Nahant Update 5),shell为/bin/bash,不同的OS和shell可能命令有些不一样。例如AIX的ksh,没有disown,但是可以使用nohup -pPID来获得disown同样的效果。
还有一种更加强大的方式是使用screen,首先创建一个断开模式的虚拟终端,然后用-r选项重新连接这个虚拟终端,在其中执行的任何命令,都能达到nohup的效果,这在有多个命令需要在后台连续执行的时候比较方便:
$screen-dmSscreen_test$screen-listThereisascreenon:27963.screen_test(Detached)1Socketin/tmp/uscreens/S-jiangfeng.$screen-rscreen_test
猜你还喜欢
- 03-29 [摄影课堂] 电光火石间的决定
- 03-29 [摄影相关] UV镜不要随便将就
- 03-29 [摄影技巧] 抗光害滤镜 | 还原城市最美夜景 城市夜空的色彩救星!
- 03-29 [设计] 无边泳池是怎么设计的?以及它的原理介绍
- 03-29 [摄影] 我们应该怎么去看待摄影的能力?
- 03-27 [涨姿势] 爆冷的最强事业编,活少钱多,一年只有5个月在上班…
- 03-27 [涨姿势] 70年代中国打飞机教程:姿势全面内容详细!
- 03-25 [摄影] 使用除雾带后镜头起雾结霜一样能驰骋沙场
- 03-22 [摄影] 郁金香花朵怎么拍好看 注意这几点就可以了 花卉摄影技巧教程
- 03-06 [关于AI] 天天用AI还不知道AI是怎么反馈的?一文了解生成模型常见损失函数Python代码实现+计算原理解析
- 02-01 [AI绘图] “比较详细”的免费绘制爱好图的教程,我所体验到的开源中最佳效果
- 01-04 [涨姿势] 选择葡萄酒做为礼物的注意事项
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[资料] 曲黎敏 - 黄帝内经 [MPG]
[书籍] 张九仪《秘传造葬制煞作法》[pdf]
[小说] 武侠小说合集(1912部)
[源码程序] 短剧机器人+付费进群系统,短剧新风口躺赚收益(附源码)
[开发辅助] 开发人员的终极工具箱 | He3(2.0.20.0)
[文件修改] PDF信息修改工具 PDF补丁丁 | PDFPatcher(1.0.1.4234)
[CF探险模式] 地图禁区畅玩攻略,高效获取禁区奖励
[电影] 2024年国产奇幻片《狂暴巨蜥》HD国语中字
[电影] 1984年中国香港经典喜剧片《人吓鬼》蓝光国粤双语中字
[书籍] 席殊实用硬笔字字贴[pdf]
[资料] [大学期末救急课] 猴博士+高斯课堂+斐多课堂,全集视频合集
[云资源] 价值2万元的老男孩Python教程
[书库] 史上最全摄影书推荐(附700本PDF版打包下载)
[云资源] 花了一千多元买的私人健身教程
[下载工具] Internet Download Manager 6.42.7 (IDM)
[影视] 灌篮高手 WEB-DL版下载/Slam Dunk/スラムダンク/灌篮高手:THE FIRST/灌篮高手电影版 2022 The First Slam Dunk 61.35G
[即时通讯] 腾讯QQ PC版9.7.22.29315去广告绿色纯净版
[开发环境] PhpStorm2023中文激活版v2023.3.3 正式版
[图像制作] Adobe Illustrator 2024 v28.1.0.141 破解版
[资料] 3000 套电影电视剧 LOGO 宣传片常用音效合集包
[云资源] 价值2万元的老男孩Python教程
[影视] 灌篮高手 WEB-DL版下载/Slam Dunk/スラムダンク/灌篮高手:THE FIRST/灌篮高手电影版 2022 The First Slam Dunk 61.35G
[云资源] 花了一千多元买的私人健身教程
[书库] 史上最全摄影书推荐(附700本PDF版打包下载)
[电视剧] 三体 (2024) 全8集 网飞版本 中文字幕 合集
[剧集] 繁花 (2023)[全30集][打包]
[影视] 三大队 WEB-DL版下载/Endless Journey/请转告局长,三大队任务完成了 2023 三大队 6.7G
[纪录片] 河西走廊【10集 国语 中文字幕 1080P 10.8G MP4】
[安卓软件] OfficeSuite中文版APP v14.2.50872.0破解版
[影视] 涉过愤怒的海 WEB-DL版下载/怒海 / Across the Furious Sea 2023 涉过愤怒的海 26.3G
- 最新评论
-
谢谢支持!!CC下载站 评论于:03-26 很棒的资源,感谢分享云体风身 评论于:03-26 感谢分享,好东西云体风身 评论于:03-26 谢谢支持!CC下载站 评论于:03-14 央视精品,感谢付出提供。qwer9009 评论于:03-14 谢谢支持!!!CC下载站 评论于:03-13 谢谢分享!Ypc9182 评论于:03-12 谢谢支持!!CC下载站 评论于:03-11 感谢本网站收集和提供这么多的资料,谢谢!Ypc9182 评论于:03-10 很棒的资源,支持一下lingzhi007 评论于:03-10
- 热门tag