我想在CENTOS服务器中运行python脚本:
#!/usr/bin/env python
import socket
try:
import thread
except ImportError:
import _thread as thread #Py3K changed it.
class Polserv(object):
def __init__(self):
self.numthreads = 0
self.tidcount = 0
self.port = 843
self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
self.sock.bind(('100.100.100.100', self.port))
self.sock.listen(5)
def run(self):
while True:
thread.start_new_thread(self.handle, self.sock.accept())
def handle(self,conn,addr):
self.numthreads += 1
self.tidcount += 1
tid=self.tidcount
while True:
data=conn.recv(2048)
if not data:
conn.close()
self.numthreads-=1
break
#if "<policy-file-request/>\0" in data:
conn.sendall(b"<?xml version='1.0'?><cross-domain-policy><allow-access-from domain='*' to-ports='*'/></cross-domain-policy>")
conn.close()
self.numthreads-=1
break
#conn.sendall(b"[#%d (%d running)] %s" % (tid,self.numthreads,data) )
Polserv().run()
我正在使用$ python flashpolicyd.py
它,并且工作正常…问题是:即使关闭ssh控制台后,如何保持此脚本运行?
我使用此代码来守护我的应用程序。它允许您start/stop/restart
使用以下命令来编写脚本。
python myscript.py start
python myscript.py stop
python myscript.py restart
除此之外,我还有一个init.d脚本来控制我的服务。这使您可以在操作系统启动时自动启动服务。
这是一个简单的示例,可以助您一臂之力。只需将代码移到一个类中,然后从run
内部的函数中调用它即可MyDeamon
。
import sys
import time
from daemon import Daemon
class YourCode(object):
def run(self):
while True:
time.sleep(1)
class MyDaemon(Daemon):
def run(self):
# Or simply merge your code with MyDaemon.
your_code = YourCode()
your_code.run()
if __name__ == "__main__":
daemon = MyDaemon('/tmp/daemon-example.pid')
if len(sys.argv) == 2:
if 'start' == sys.argv[1]:
daemon.start()
elif 'stop' == sys.argv[1]:
daemon.stop()
elif 'restart' == sys.argv[1]:
daemon.restart()
else:
print "Unknown command"
sys.exit(2)
sys.exit(0)
else:
print "usage: %s start|stop|restart" % sys.argv[0]
sys.exit(2)
暴发户
如果您正在运行使用Upstart的操作系统(例如CentOS
6)-您也可以使用Upstart来管理服务。如果您使用Upstart,则可以按原样保留脚本,只需在下面添加如下内容/etc/init/my- service.conf
start on started sshd
stop on runlevel [!2345]
exec /usr/bin/python /opt/my_service.py
respawn
然后,您可以使用启动/停止/重新启动来管理服务。
例如
start my-service
stop my-service
restart my-service
这里提供了使用新贵的更详细的示例。
问题内容: 我正在草拟一组程序的体系结构,这些程序共享存储在数据库中的各种相互关联的对象。我希望其中一个程序充当服务,为这些对象的操作提供更高级别的接口,而其他程序则通过该服务访问对象。 我目前的目标是将Python和Django框架作为实现该服务的技术。我很确定自己知道如何守护Linux中的Python程序。但是,这是系统应支持Windows的可选规格。我几乎没有Windows编程经验,也没有W
问题内容: 是否可以在网络服务器上将Python脚本作为后台服务运行?我想这样做以进行套接字通信。 问题答案: 您可以使其成为守护程序。有一个PEP可以提供更完整的解决方案,但是我发现这样做很好。
问题内容: 我刚刚开始学习Python,现在我很迷路。我想在通过hosting24.com托管的服务器上运行脚本。他们的常见问题解答说他们支持Python,但是我不知道将脚本放在哪里运行。 我的根目录中有一个名为cgi-bin的文件夹,我猜这是我放置脚本的位置吗?有人可以向我解释这是如何工作的吗? 问题答案: 很简单,您可以将Python脚本重命名为“ pythonscript.cgi”。将其发布
问题内容: 哈o 我试图让python脚本在(ubuntu)linux上作为服务(守护程序)运行。 在网络上,存在几种解决方案,例如: http://pypi.python.org/pypi/python- daemon/ 行为规范的Unix守护进程很难正确执行,但是每个守护程序所需的步骤几乎相同。DaemonContext实例保存程序的行为和配置的进程环境。使用实例作为上下文管理器进入守护程序状
问题内容: 我有一个非常简单的Python文件python1.py,其内容为: 我希望从JavaScript执行此操作,如下所示: 但是,所有发生的是,我得到了警告,向我显示了Python脚本的内容。没有创建文件C:\ Temp \ test.txt,因此很明显,Python未执行。 我如何说服代码执行Python脚本,而不仅仅是阅读它? 问题答案: 您是否可以直接从浏览器执行脚本。与jquery
问题内容: 我正在调试一些必须在我的虚拟机上运行的python脚本。而且,我更喜欢在本地(虚拟机外部)编辑脚本。因此,我发现每次都将脚本修改为虚拟机 很繁琐。谁能提出一些有效的方法? 特别是,我想知道是否可以在远程PVM上执行python脚本。像这样: 问题答案: 可以使用ssh。Python接受连字符(-)作为执行标准输入的参数, 运行 python –help 以获得更多信息。