是否可以在网络服务器上将Python脚本作为后台服务运行?我想这样做以进行套接字通信。
您可以使其成为守护程序。有一个PEP可以提供更完整的解决方案,但是我发现这样做很好。
import os, sys
def become_daemon(our_home_dir='.', out_log='/dev/null', err_log='/dev/null', pidfile='/var/tmp/daemon.pid'):
""" Make the current process a daemon. """
try:
# First fork
try:
if os.fork() > 0:
sys.exit(0)
except OSError, e:
sys.stderr.write('fork #1 failed" (%d) %s\n' % (e.errno, e.strerror))
sys.exit(1)
os.setsid()
os.chdir(our_home_dir)
os.umask(0)
# Second fork
try:
pid = os.fork()
if pid > 0:
# You must write the pid file here. After the exit()
# the pid variable is gone.
fpid = open(pidfile, 'wb')
fpid.write(str(pid))
fpid.close()
sys.exit(0)
except OSError, e:
sys.stderr.write('fork #2 failed" (%d) %s\n' % (e.errno, e.strerror))
sys.exit(1)
si = open('/dev/null', 'r')
so = open(out_log, 'a+', 0)
se = open(err_log, 'a+', 0)
os.dup2(si.fileno(), sys.stdin.fileno())
os.dup2(so.fileno(), sys.stdout.fileno())
os.dup2(se.fileno(), sys.stderr.fileno())
except Exception, e:
sys.stderr.write(str(e))
问题内容: 我想在CENTOS服务器中运行python脚本: 我正在使用它,并且工作正常…问题是:即使关闭ssh控制台后,如何保持此脚本运行? 问题答案: 我使用此代码来守护我的应用程序。它允许您使用以下命令来编写脚本。 除此之外,我还有一个init.d脚本来控制我的服务。这使您可以在操作系统启动时自动启动服务。 这是一个简单的示例,可以助您一臂之力。只需将代码移到一个类中,然后从内部的函数中调用
问题内容: 我正在草拟一组程序的体系结构,这些程序共享存储在数据库中的各种相互关联的对象。我希望其中一个程序充当服务,为这些对象的操作提供更高级别的接口,而其他程序则通过该服务访问对象。 我目前的目标是将Python和Django框架作为实现该服务的技术。我很确定自己知道如何守护Linux中的Python程序。但是,这是系统应支持Windows的可选规格。我几乎没有Windows编程经验,也没有W
问题内容: 我想使用Java Scripting API 从Java运行kotlin代码作为脚本,类似于javascript: 或类似的API。 问题答案: 是的,可以从Kotlin 1.1开始:http : //kotlinlang.org/docs/reference/whatsnew11.html#javaxscript- support 此配置将Kotlin脚本引擎添加到我的Kotlin
问题内容: 我一直在尝试编写从串行端口读取数据的python脚本。它在命令行上运行良好,但是我需要它作为后台进程运行而没有任何命令行界面。该脚本有一个while循环,该循环从串行端口读取下一个数据字节,并相应地模拟按键。为了使按键可以专注于当前窗口而不是python命令行,我需要脚本作为后台进程运行。我在这里读的答案很少,但是没有什么让我振奋。请指出正确的方向。 问题答案: 在Windows上,您
问题内容: 我正在调试一些必须在我的虚拟机上运行的python脚本。而且,我更喜欢在本地(虚拟机外部)编辑脚本。因此,我发现每次都将脚本修改为虚拟机 很繁琐。谁能提出一些有效的方法? 特别是,我想知道是否可以在远程PVM上执行python脚本。像这样: 问题答案: 可以使用ssh。Python接受连字符(-)作为执行标准输入的参数, 运行 python –help 以获得更多信息。
问题内容: 我写了一些要在其他计算机上运行的.py文件。目标机器未安装python,因此我无法通过策略“安装”它。我所能做的就是复制文件,运行我的东西,然后将其删除。 我试图将开发python文件夹移至目标计算机,将cd移至python文件夹并运行。它给我一个错误,指出未注册python.dll。如果我注册了DLL,这可能会使我跨过“违反政策”行。 无论如何,我是否可以在没有实际安装python的