linux下通常部署完程序,需要让它一直在后台运行,否则ssh一旦断开,整个进程就挂了。今天要介绍的就是一个关于让程序在后台运行的命令nohup!!!
网上的许多文章对于nohup这个命令有非常细致的讲解,然而我认为在使用阶段最好的就是能快速易懂方便使用,如果有需求深入学习的话,再查阅相关的文档,起码不要再学习整个命令的初期把人讲晕了。
# 1.后台启动程序
nohup Command [ Arg … ] [ & ]
# nohup命令 参数可选但不是必须的,又需要看文档既可
# 举例
# 在后台运行 test.py的python脚本
nohup python test.py &
# 在后台运行uwsgi(下面的只是uwsgi举例)
nohup uwsgi --http :8001 --wsgi-file test.py &
# 执行之后会返回一个进程号
# 以及告诉你程序的标准输出都会保存在一个叫outhup.out的文件中在程序根目录下
# 2.查看此程序运行状态
# 端口状态查看
lsof -i:port
# 某某程序运行状态
ps -ef | grep <程序名>
# 举例
# 查看后台python运行状态
ps -ef | grep python
# 查看后台uwsgi运行状态
ps -ef | grep uwsgi
# jobs这个命令也可查看程序后台运行状态,不过另起一个ssh就出不来了,感觉有点鸡肋
# 3.停掉这个程序,不让他运行了
# 可以把后台程序转到前台,也可以根据进程号直接干掉,这里推荐后者,毕竟方便
# 例如根据 ps -ef | grep <程序名> 得到进程号24365
kill 24365
# 这个进程讲就game over了
# 最最最重要的一点
# 程序在后台运行了之后,不要直接把ssh给关了
# 一但ssh客户端中断,这个进程也就直接挂了
# 所以我们需要exit来退出远程连接,真的是细节决定成败