在项目中,用shell终端启动程序时,因为终端启动的程序依赖于启动它的终端,所以终端关闭时程序就会随之关闭。那么如何使程序独立于终端,即终端关闭时程序不会关闭那?可以将进程设置为守护进程,也可以设置为后台运行程序。
1.设置为守护进程
fork创建子进程,父进程退出;
子进程设置新会话(setsid()函数);
修改路径(mkdir);
设置文件权限掩码(umask(0));
关闭所有文件描述符;
2.nohup ./a.out &
可以设置为后台运行程序,而且会在当前目录下生成nohup.out,记录程序的输出信息;不依赖于当前shell终端;
./a.out & 依赖于当前终端的后台进程,关闭当前终端则进程会随之结束。
ubuntu后台运行某进程:http://www.linuxdiyf.com/linux/14497.html
后台运行Linux程序的方法:http://www.linuxdiyf.com/linux/8779.html
让Linux终端中执行的程序在后台运行:http://www.linuxdiyf.com/linux/3011.html
Linux下使Shell命令脱离终端在后台运行:http://www.linuxdiyf.com/linux/7311.html
Linux下nohup命令实现退出终端后程序继续后台运行:http://www.linuxdiyf.com/linux/10909.html