Linux让进程在后台运行
2016-01-21 10:36
295 查看
楼主这里有个程序需要花大量的时间执行,之前在自己的电脑上执行,有的半个小时出结果,有的可能不知道几天 出结果,但又不能让电脑一直开着,于是乎,机智如我便在网上租了一个云主机,约1元/天;下面便是细节: 我先租用云主机,安装了centos系统 默认纯净系统啥都没有,于是我yum install gcc,安装了gcc 把程序kong2.c文件放到远程主机上,然后编译执行 vim kong2.c 写好程序 gcc kong2.c -o kong5bu 生成可执行文件 jobs 此时无任务执行 ./kong5bu 执行该程序
但是各位观众朋友们,当你执行一个很久的进程时,不能一直停在这个界面啥也不做啊,于是我们需要把他移到后台执行:
ctrl+z 移到后台并停止,注意[1]是该jobs的编号 bg %1 这个1是编号,表示让其对应的job后台执行 如图,./kong5bu由后台stopped变为running 但是亲爱的观众朋友们,这个时候虽然后台执行了,当你退出shell或者一不小心掉线时,该进程就一起挂掉了, (楼主跑了一晚上的数据第二天不小心掉个线,算了,我想静静。。。) 所以,还要让它脱离组织自动保持运行
disown -h %1 这个时候看jobs它依然在running,只不过已经和独立了,然后输入 exit 退出shell或者关机,远程主机都不受影响 第二天起床,登录shell远程主机,使用命令 ps aux 查看进程,发现该job还在,我也放心了
让进程后台独立运行还有其他方法,如: nohup ./kong5bu > xxx 该命令表示让程序后台独立运行,然后把输出结果保持在xxx文件中,运行完成后你直接在xxx中看结果即可, 要简单得多。由于楼主的程序要在开始的时候输入数据,所以就用的前面那种方法。 附上一个问题:使用 nohup ./startWeblogic.sh >log1.log &启动服务,报错:nohup: ignoring input and redirecting stderr to stdout求大神么你指点下怎么解决啊 这句你可以忽略,意思是把标准错误也输出到标准输出,也就是说为的字符输出,但是也会被重定向到log1.log 你可以在命令后面加 2>&1来屏蔽这个 nohup ./startWeblogic.sh >log1.log 2>&1 &
相关文章推荐
- Linux---vi/vim复制剪切粘贴以及常用命令小结
- Linux曲径通幽:常用命令(文件搜索命令、目录命令)
- linux下使用select实现精确定时器
- linux curl模拟登录网页
- lvs+keepalived
- CentOS 6.5安装部署Glusterfs
- CentOS 6.5安装部署FFmpge切片环境
- linux性能分析 sar 命令详解
- Ceph:一个 Linux PB 级分布式文件系统
- linux查看进程线程数
- Linux NFS服务器的安装与配置
- 什么是Linux 集群
- Linux性能优化
- Linux下的WebLogic安装部署 .
- Linux企业运维高效技巧心得及分享
- CentOS 6.5 安装部署zabbix(Server端篇)
- CentOS 6.5 安装部署zabbix(Agent客户端篇)
- Linux系统下对JDK版本升级
- sysfs文件系统
- Linux C++ 时间与日期