在远程服务器中用nohup挂程序,以及结束进程
安装putty
你如果有了一个远程服务器的IP、端口、账号和密码,那么就可以用这个putty进行操作了。
好像也可以用xshell,不过xshell好像收费,功能要多一些,我也不会用,尴尬。
putty的好处在于,体积小,看起来整洁,OK,小文件,自己下载就好了
然后双击,进入,配置好你的IP,就可以输入账号密码,登进去。
Welcome to Ubuntu 16.04.5 LTS (GNU/Linux 4.4.0-131-generic i686)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
Get cloud support with Ubuntu Advantage Cloud Guest:
http://www.ubuntu.com/business/services/cloud
5 packages can be updated.
0 updates are security updates.
*** System restart required ***
Last login: Sun Sep 2 10:54:42 2018
挂程序
为了验证我的nohup命令确实可以在我关闭终端的时候,在服务器上继续执行脚本,我先写了一个demo——nohup_demo.py。
import time
i = 1
while(1):
time.sleep(2)
name = str(i)+'.txt'
print name
fo = open(name,'wb')
fo.write((str(i)).encode('utf-8'))
fo.close()
i += 1
代码很简单,就是两秒钟保存一个文档
然后我需要执行这段代码:
nohup python nohup_demo.py
效果如下:
如果你摁了Ctrl+c的话,就结束了,然后操作的过程会留在nohup.out文件中。
如何让程序一直挂机运行?
但是如果你想一直执行这段代码,你可以直接关闭putty,然后重新打开,这样就会一直运行了~
这样如果你忘了的话,可能程序真的会一直跑下去,很是有趣。我们来看看一直运行下去的后果:
如何查看是否一直运行:
你进入文件夹,执行
ls
文档会越来越多,就是一直运行咯。
或者复杂点,你可以查看这个进程:
ps -ef | grep python
XXX@desktop:~/csdn$ ps -ef | grep python
root 17959 1 0 Aug26 ? 00:02:48 /usr/bin/python /usr/local/bin/ssserver -c /etc/shadowsocks.json -d start
XXX+ 30765 1 0 11:21 ? 00:00:00 python nohup_demo.py
XXX+ 30826 30807 0 11:27 pts/0 00:00:00 grep --color=auto python
python是我之前的执行命令,前面的是固定语法。
可以看到我执行python的那个进程是30765
我们需要干掉它~
结束隐藏的nohup进程
为了验证我们是真的结束了,先删掉那些乱七八糟的文件
这里一定要注意,别在错误的位置执行这段代码!
这里一定要注意,别在错误的位置执行这段代码!
这里一定要注意,别在错误的位置执行这段代码!
一定要在只有这点文件的文件夹,执行,要不然就凉了
rm *.txt
OK,然后可以看到少了很多乱七八糟的东西
结束进程!
语法是这样的:
kill -9 pid
kill是操作符,-9不知道啥意思,pid是进程id的缩写。我们改成我们的30765,如下
kill -9 30765
再次查看是否有进程:
XXX@desktop:~/csdn$ ps -ef | grep python
root 17959 1 0 Aug26 ? 00:02:48 /usr/bin/python /usr/local/bin/ssserver -c /etc/shadowsocks.json -d start
XXX+ 30845 30807 0 11:34 pts/0 00:00:00 grep --color=auto python
没有了,美滋滋。
总结
综上,我又解决了一个问题,就是服务器一直挂程序的问题,为可视化爬虫小项目奠定了一个良好的基础~