我编写了一个Python脚本并作为服务运行,脚本本身会检查网络流量,最后它会吐出一个print语句。 我不知道最后怎么会看到印刷文字。它会显示在终端上吗?
我的想法是,如果此脚本作为服务运行并且我已登录,我想查看打印结果。
service.conf(修复运行级别,如果它也有问题,我可以运行它作为最后一个服务)
description "Network Check"
author "I am the user"
start on runlevel [234]
stop on runlevel [0156]
chdir /home/foo
exec /home/foo/test.py
respawn
剧本:
#!/usr/bin/python
import psutil
import time
final_bytes=0
diff=0
while ((final_bytes/1000000) < 500):
bytes = psutil.net_io_counters()
if (bytes.bytes_recv - diff) > 1000000:
time.sleep(1)
if final_bytes != 0:
final_bytes = final_bytes + (bytes.bytes_recv - diff)
else:
final_bytes =1
else:
time.sleep(0.5)
diff = bytes.bytes_recv
print "Total Bytes transferred: ", final_bytes / 1000000 ,"MB"
答案 0 :(得分:0)
一种可能的选择是设置系统日志服务器(本地或远程)以将输出记录到。
import logging
import logging.handlers
# Set up the logging
FORMAT = "[%(filename)s:%(lineno)s - %(funcName)20s ] %(message)s\n"
logging.basicConfig(format=FORMAT)
_LOG = logging.getLogger(__name__)
_LOG.setLevel(logging.DEBUG)
sysLogServer = "127.0.0.1" # This could be a remote server address also
sysLogPort = 514
sysLogHandle = logging.handlers.SysLogHandler(address=(sysLogServer, sysLogPort))
sysLogHandle.setFormatter(logging.Formatter( __name__ + ":" + FORMAT))
_LOG.addHandler(sysLogHandle)
如果要生成日志消息,可以使用设置日志记录功能,如下所示:
_LOG.debug("Total Bytes Transfered...")
这会导致您的代码生成UDP syslog数据包。下一步是设置本地syslog监听器。例如,可以找到基本指南here
请注意。上面的例子比格式化要复杂得多,它只是我用来在我的内容输出中包含函数名的典型格式。