Linux如何让程序在后台运行
如果要运行程序,在命令提示行下输入程序名后回车,程序被执行,然后等待程序运行完成,在程序运行的过程中,也可以用Ctrl+c中止它。
在实际开发中,我们需要让程序在后台运行,没有界面,没有用户输入数据。
如果想让程序在后台运行,有两种方法。
1、加“&”符号
如果想让程序在后台运行,执行程序的时候,命令的最后面加“&”符号。
如:
./book257 &
程序就在后台运行了。
在后台运行的程序,用Ctrl+c无法中断,并且就算终端退出了,程序仍在后台运行。
如果终端退出了,后台运行的程序将由系统托管。
在第一张图中,book257的父进程是64206,第二张图中,book257的父进程是1。
为了不影响接下来的学习,用killall book257指令让book257程序退出。
2、采用fork
另一种方法是采用fork,主程序执行fork,生成一个子进程,然后父进程退出,留下子进程继续运行,子进程将由系统托管。
在book257的main函数后增加以下代码:
if (fork()>0) return 0;
重新编译后执行book257pp,运行效果如下:
上图中,44850是fork后的子进程,它的父进程号是1,是系统进程(亲爹没了,天地日月为父)。
3、如何让中止后台运行中程序
问题来了,程序在后台运行了,离开了终端控制,用Ctrl+c上也无法中止,那怎么让它停下来呢?暂时用一个笨方法,杀了它。
杀程序有两个方法:
1)killall 程序名
killall book250
执行效果
2)先用“ps -ef|grep 程序名”找到程序的进程编号,然后用“kill 进程编号”。
执行效果
4、参考文献
1、https://blog.csdn.net/wucz122140729/article/details/105112944
Linux如何让程序在后台运行相关推荐
- 在linux将一些程序放到后台运行的方法(nohup/screen/daemonize)
方法一:nohup # nohup sh xkahn.sh & 方法二:screen 1.先安装screen程序 yum install -y screen 2.运行screen程序 (注释: ...
- linux中启动 java -jar 后台运行程序
ps -ef | grep java 查询java 端口占用 linux中启动 java -jar 后台运行程序 直接用java -jar xxx.jar,当退出或关闭shell时,程序就会停止掉. ...
- 【破事氵】在Linux环境中让程序在后台运行
前言 首先,相信大家都或多或少了解过linux和云服务器.linux作为一个开源的操作系统内核,在开发者人群和服务器领域中有着很高的使用率.而现在在以阿里云为代表的云服务器商中,可以以很低的价格买入入 ...
- Linux——让程序在后台运行(四种方法+使用推荐)
目录 一.第一种方法(加"&"符号) 二.第二种方法(nohup命令) 三.第三种方法(screen命令) 四.第四种方法(systemctl命令) 五.总结 六 ...
- Ubuntu中如何使得程序在后台运行
Ubuntu中如何使得程序在后台运行 一.前言 在Ubuntu中有的程序启动需要执行改程序./bin目录下的文件,并且启动之后这个shell就不能使用和关闭了,非常的麻烦,因此就有了相应的命令来解决这 ...
- 让程序常驻后台运行的原理和方法
为什么80%的码农都做不了架构师?>>> linux中进程组织结构为session包含一个前台进程组及一个或多个后台进程组,一个进程组包含多个进程. 一个session可能会有 ...
- Linux下 SpringBoot jar项目后台运行、查看、停用
运行java jar: nohup java -jar **-0.0.1-SNAPSHOT.jar & 查看进程: 采用top或者ps aux命令.一般 如果后台是springboot,jar ...
- java语言写常驻服务_让程序常驻后台运行的原理和方法
linux中进程组织结构为session包含一个前台进程组及一个或多个后台进程组,一个进程组包含多个进程. 一个session可能会有一个session首进程,而一个session首进程可能会有一个控 ...
- 【iOS系列】-程序开启后台运行
[iOS系列]-程序开启后台运行 iOS程序是伪后台的运行,可是有时候我们需要让其在后台也要进行一些操作,我们可以让其伪装成音乐的APP,这样就可以让程序后台进行相关操作了,具体做法如下: 1:在Ap ...
最新文章
- 蓝桥杯-区间k大数查询(java)
- 互联网1分钟 | 0920
- XCTF-Web-高手区-easytornado
- 在mac上安装Go语言初体验
- python中truncate的用法_在Python中操作文件之truncate()方法的使用教程
- 即时通讯作为互联网最普及的基础服务之一
- ajax请求完之前的loading加载
- busybox的编译和使用
- 如何在 Pr 中创建动作序列?
- linux系统的手机刷机包,ubuntu系统修复工具-ubuntu手机操作系统刷机包v20.04 官方版 - 极光下载站...
- java基于springboot的酒店预约管理平台系统
- uni ios视频黑屏、无声音或无法播放
- php的seeder是什么,使用Laravel框架的Seeder实现自动填充数据功能
- 台式计算机怎么开声音,台式电脑没有声音怎么办
- 基于K210的声源定位系统
- item_search_img-按图搜索1688商品(拍立淘)接口的接入参数说明
- socket 科普文章
- C语言程序设计第二版 甘勇, 李烨 , 卢冰
- 【Java】数据交换
- 2021-ICPC银川站赛后总结
热门文章
- tf.extract_image_patches
- @keyup.enter.native不生效?看看@keyup.enter.native和@keyup.enter的区别和使用
- @keyup.enter.native不生效问题解决
- 站长还应该发布外链吗?
- ppt在线转换成pdf
- math.h数学函数
- Office2021官方镜像
- Oracle 数据压缩(Compression) 技术 说明
- html video标签canplay,HTML oncanplay事件用法及代码示例
- photoshop cc2017全套视频课程 从基础到实战案例PS海报-王诚-专题视频课程