运行 ubuntu 服务器上的脚本即服务

Running a script as a service on ubuntu server

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

我需要的是将脚本上传到服务器并运行它作为一项服务,这样我就不需要保持活动的互联网连接,也不需要在我的本地机器上保持我的终端打开。任务完成后,我需要登录服务器并获取结果文件。

我该怎么做,服务器 运行s Ubuntu 服务器 16.04 amd64 和本地计算机 运行s Windows 10.

快速而肮脏的方法:

[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 控制文件,或安装一个 cronjob 脚本。后者可能是一种更容易的第一种学习方法。