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

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值