linux程序不依赖shell终端

场景分析

这两天遇到一个让程序后台运行的问题,因为基础知识薄弱,出现问题后发现自己没有找到问题所存在的根本原因,通过终端adb连接开发板,然后运行c程序连接服务器,然后让开发板休眠,断开usb后使其进入休眠模式.但是发现一拔出来usb,服务器就会提示掉线,我理解成了因为休眠导致的断开服务器.然后经过师傅的解答以及自己做了个实验,发现问题并不是休眠的问题,而是因为终端关闭,导致程序结束,然后导致的与服务器连接断开.发现问题以后就开始网上查找相应的解决方案.

还有一种应用场景是ssh连接到服务器以后,需要执行长时间的任务,也可以用这种方法.

解决方法

运行命令后面加&

./yuanban &
然后可以通过jobs查看所有的后台运行的任务
kill %n
可以杀死某个任务.注:n是通过jobs查看的编号,不是PID号.
fg %n
后台的程序继续返回到前台(当前的终端)来.

笔记

ctrl+z 是暂停任务,并没有结束,仍然在进程中,只是维持挂起的一个状态,通过fg命令重新启动前台被中断的任务,bg命令把被中断的任务放在后台执行.
ctrl+c 是终止任务,强制中断结束.

参考

https://www.ibm.com/developerworks/cn/linux/l-cn-nohup/
https://www.cnblogs.com/itech/archive/2012/04/19/2457499.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值