一个关于守护进程执行 linux 命令的问题

2015-06-08 10:51:32 +08:00
 xionghengheng
使用了一个linux的nohup命令(该命令可以直接模拟守护进程)
nohup python xx.py &
问题是在该py文件执行了以下语句:
os.system('php mailToEveryone.php')
print 'mail success!!!!'

结果却并没有执行,直接把那个忽略啦。。。。什么原因
3093 次点击
所在节点    Python
11 条回复
lululau
2015-06-08 11:10:15 +08:00
都说是守护进程了,还期望在控制终端上观察到输出吗,先了解下 daemon 的概念

可以看看 ./nohup.out 文件里有没有你期望的输出
fangjinmin
2015-06-08 11:14:52 +08:00
不是没有执行,是你没有把日志打印出来而己。

nohup python xx.py >nohup.log 2>&1 &
way2exluren
2015-06-08 11:19:41 +08:00
那句os.system里的命令用绝对路径,不要用相对路径
iyaozhen
2015-06-08 11:22:19 +08:00
nohup 命令直观感受是后台运行脚本,然后输出会写到当前目录的 nohup.out 文件中。


然而并不能守护,挂了还是挂了。
clino
2015-06-08 11:23:15 +08:00
用screen更好更清楚
xionghengheng
2015-06-08 12:49:48 +08:00
@lululau 不好意思 没有描述清楚,我肯定知道标准输出,标准错误已经重定向到了nohup.out,我当然也查看了该文件。。。。压根就没有任何关于该命令是否执行或者错误的输出
xionghengheng
2015-06-08 12:51:02 +08:00
@iyaozhen 当然可以守护,关闭bash客户端,照样运行,脚本并没有挂掉,而是直接跳过了那条命令
xionghengheng
2015-06-08 12:54:10 +08:00
@lululau Stevens的unix高级环境第九章 以及看了很多次了。。。谢谢
xionghengheng
2015-06-08 12:57:22 +08:00
@way2exluren 谢谢 我尝试下
lilydjwg
2015-06-08 13:45:19 +08:00
@xionghengheng 的确没有描述清楚——你是怎么判断没有执行的?没有执行的「那条命令」是哪条?
xionghengheng
2015-06-10 11:49:43 +08:00
@way2exluren 确实是这样的。。。用绝对路径就好

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/196859

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX