公司同事写了一个监听843的端口,需要在linux下一直动行,现在是在终端可以运行,可是一退出终端就关闭了,
要求:我用c写了一个监听程序,想让它一直运行,应该怎么做?
答:
有三个办法:
一、最直接的办法,用nohup命令,将程序挂到后台。
二、最方便的办法,用screen命令,起个虚拟终端,即使断开连接也能继续在后台跑。
三、最正常的思路,是将监听程序置为daemon,直接在后台运行,具体是监听程序启动后,fork一个子进程,将子进程setsid,然后父进程退出,实际操作都放到子进程中。
当然程序里面的循环结构是肯定要的。
nohup命令用法
ssh连接Linux,想关闭连接后 后台还可以运行某程序 可以使用nohup命令
nohup /opt/phpfpm/bin/php hotel.php &
出现appending output to nohup.out就正确了
可以ps -ef查看进程pid
可以kill其pid结束进程
Unix/Linux下一般比如想让某个程序在后台运行,很多...