在ubuntu服务器上将脚本作为服务运行

时间:2018-04-11 04:49:06

标签: ubuntu service remote-server

我有一个python脚本,我想在远程ubuntu服务器上运行,目前我使用SSH使用Putty登录到远程服务器并运行脚本。但这需要我的终端打开,需要在我的本地机器上有一个活动的互联网连接,直到任务完成。

我需要的是将脚本上传到服务器并将其作为服务运行,这样我就不需要维护活动的Internet连接以及在本地计算机上保持终端打开。任务完成后,我需要登录服务器并获取结果文件。

我该怎么做,服务器运行Ubuntu Server 16.04 amd64,本地机器运行Windows 10。

1 个答案:

答案 0 :(得分:1)

快速而肮脏的方法:

[Putty to the remote host]
$ python your_script.py & disown %1
$ logout

说明:&符号(&)在后台运行脚本作为作业,控件立即返回到shell。然后,disown %1告诉shell不再监视或监视作业,允许您在不中断进程的情况下注销。

更专业的方法可能会使用nohup

[Putty to the remote host]
$ nohup python your_script.py > /dev/null   # if output can be ignored
$ nohup python your_script.py > output.txt  # if output must be saved
$ logout

如果您正在讨论的是实际的服务,根本不需要您使用SSH,那么请选择解决方法 - 您可以考虑编写SystemD Control文件,或者安装cronjob脚本。后者可能是一种更容易学习的第一种方法。