Linux下优雅的让程序后台运行

假设在终端上启动运行了一个程序,跑了几天,如果不小心把terminal关了,那么程序就会终止,这是SIGHUP信号的原因,即使通过bg置为后台运行同样会如此,应该让程序成为一个daemon,步骤如下:

1.Ctrl+z 暂停程序的运行,可以看到程序的作业号,假设为1;

2.bg %1 置为后台运行;

3. disown -h %1 使其不受终端关闭的影响。

=> The disown command on ksh shell causes the shell not to send a HUP signal to each given job, or all active jobs if job is omitted, when a login shell terminates.

=>The disown command on bash shell can either remove jobs or causes the shell not to send a HUP signal to each given job or all jobs.

实例:

./main.py 之前是终端上正常运行的普通程序。

按上面操作之后,通过 ps -ef | awk ‘$3 == 1‘ 命令可以看到程序变成了daemon.

参考:

1.http://stackoverflow.com/questions/625409/how-do-i-put-an-already-running-process-under-nohup

时间: 2024-12-23 19:36:01

Linux下优雅的让程序后台运行的相关文章

linux下如何让控制台程序后台运行

方法1:./test & 方法2:(./test &) 方法3:nohup 和bg 方法4:screen -mS test /root/test   退出程序需要手动进入screen创建的test虚拟终端去退出 方法5:修改并保存一下代码为脚本,运行 #!/bin/bash NAME=$(basename "$0") PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/roo

Linux系统下程序后台运行nohup,&,screen等

"nohup" 在用户ssh终端断开或者网络端口时,终端没有HUP信号则会关闭所有子进程. nohup则会让进程忽略HUP信号,不受终端断开限制 一般在结尾加上"&"将命令同时放到中断后台运行 nohup标准输出和标准错误输出会被重定向到nohup.out文件中 [[email protected] ~]# nohup ping www.ibm.com & [1] 3059 nohup: appending output to `nohup.out'

linux程序后台运行

linux命令后台运行  有两种方式: 1. command & : 后台运行,你关掉终端会停止运行   2. nohup command & : 后台运行,你关掉终端也会继续运行 一. 简介     Linux/Unix 区别于微软平台最大的优点就是真正的多用户,多任务.因此在任务管理上也有别具特色的管理思想.我们知道,在 Windows 上面,我们要么让一个程序作为服务在后台一直运行,要么停止这个服务.而不能让程序在前台后台之间切换.而 Linux 提供了 fg 和bg 命令,让你轻松

linux 程序后台运行

有些时候,我们需要在终端启动一个程序,并使之运行——但是如果关闭终端,那么这个程序也就随着关闭了.那么有没有什么方法在关闭终端后,让已经从这个终端启动的程序继续运行呢? 前置知识: xterm,console,tty,pts,pty的区别 shell是直接和内核进行通信的东西 xterm是一个软件概念,可以通过这个程序连接到console从而控制主机,可以理解为cli形式的终端模拟器,而gnome-terminal,konsole就是gui形式的终端模拟器 console是主机的控制台,是一个物

windows下cmd命令提示符下让程序后台运行命令

如果你的程序需要在windows后台运行,并且是在cmd下启动,那么在执行的程序前加上start /b,比如start /b [程序名]. windows下start命令的详细参数及功能介绍如下: 文章来源 www.169it.com 启动一个单独的窗口运行指定的程序或命令. START ["title"] [/D path] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED] [/LOW | /NORMAL | /HIGH | /REALTIME | /

linux下搭建nginx+php(FastCGI)+mysql运行环境

一.安装环境 1.CentOS5.5 2.php5.4 3.MySQL5.5.19 二.安装程序依赖库和开发环境 为了省事把所需要的库文件全都安装上,可以使用rpm包安装,也可以用yum命令安装, 1 yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc gli

Linux下部署Java应用程序

Linux软件安装的特点: 1.Linux中没有注册表的概念,因此要想删除某个软件直接删除软件目录就可以了. 2.软件的安装有些需要Linux软件包的支持,在Linux中使用rpm命令管理软件包. 3.Linux中软件安装的过程很迅速,并且软件的运行速度也很快. 4.Linux中权限管理很严格,因此安装时需要对安装介质进行权限配置. 体验Linux下的Java开发 编译器->字节码->(虚拟机)本地机器码->执行 Linux系统与Windows系统最大的区别: Windows路径分隔是&

linux下bochs的安装及简单运行

http://bochs.sourceforge.net/    bochs官网.关于bochs不再累述. 我是在UBUNTU下用包管理软件apt-get装的bochs.命令 apt-get install bochs 这是一个没有调试环境的安装,先感受一下小成功的滋味..呵呵 这样的安装后,在命令行下执行$bochs会跳出一个配置界面,表害怕,这说安装成功啦.仔细阅读他的提示会发现是没有配置文件 (配置文件bochsrc,ROMIMAGE,VGAROMIMAGE.这些不解释.自己查).你可以配

zz:控制台程序后台运行

控制台程序后台运行 2010-07-10 07:06 P.M. #pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" ) // 设置入口地址              在控制台程序中隐藏控制台窗口! 大家都知道,当编写一个win32 console application时,当运行此类程序的时候 默认情况下会有一个类似DOS窗口的console窗口,