当 Raspi 上的 cron 运行 时,测试的 python 程序失败
tested python program fails when run from cron on Raspi
我在 RASP PI 2B [Jessie lite] 上有一个 python 程序,它 运行 在终端命令行中运行得很好。但是,当尝试从 cron 执行 运行 时,它失败了,如下所述。我已经设置了 mta 和日志记录。
来自系统日志:
Jan 20 15:10:01 carlton CRON[2189]:
(pi) CMD (python amr_water_r9c.py carl1022_104 1541513276 > $HOME/log/logfile 2>&1)
python 程序使用 POPEN 和
启动两个任务
第一个任务启动ok
proc1=subprocess.Popen(['rtl_tcp'],shell=True,stdout=subprocess.PIPE, stderr=subprocess.PIPE)
第二个任务
proc2=subprocess.Popen(arg_rtlamr)
结果:
Traceback (most recent call last):
File "amr_water_r9c.py", line 153, in <module>
main()
File "amr_water_r9c.py", line 148, in main
get_data()
File "amr_water_r9c.py", line 99, in get_data
proc2=subprocess.Popen(arg_rtlamr)
File "/usr/lib/python2.7/subprocess.py", line 710, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1335, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
其中
arg_rtlamr 定义为:
= ['rtlamr','-format=csv', '-unique=true', \
'-duration=1m',\
'-msgtype='+msgtype,'-filterid='+meter_num , \
' > $HOME/data/elecamr' ]
权限为:
pi@carlton:~/gopath/bin $ ls -l
-rwxr-xr-x 1 pi pi 4079128 Jan 18 16:42 rtlamr
pi@carlton:~/data $ ls -l
-rw-rw-rw- 1 pi pi 78 Jan 20 14:03 elecamr
pi@carlton:~/log $ ls -l
-rw-rw-rw- 1 pi pi 483 Jan 20 15:10 logfile
非常感谢关于正在发生的事情的任何线索
约翰
cron 作业通常 运行 在不同的环境下。例如,PATH 可能未设置为您预期的值。
我在 RASP PI 2B [Jessie lite] 上有一个 python 程序,它 运行 在终端命令行中运行得很好。但是,当尝试从 cron 执行 运行 时,它失败了,如下所述。我已经设置了 mta 和日志记录。
来自系统日志:
Jan 20 15:10:01 carlton CRON[2189]:
(pi) CMD (python amr_water_r9c.py carl1022_104 1541513276 > $HOME/log/logfile 2>&1)
python 程序使用 POPEN 和
启动两个任务第一个任务启动ok
proc1=subprocess.Popen(['rtl_tcp'],shell=True,stdout=subprocess.PIPE, stderr=subprocess.PIPE)
第二个任务
proc2=subprocess.Popen(arg_rtlamr)
结果:
Traceback (most recent call last):
File "amr_water_r9c.py", line 153, in <module>
main()
File "amr_water_r9c.py", line 148, in main
get_data()
File "amr_water_r9c.py", line 99, in get_data
proc2=subprocess.Popen(arg_rtlamr)
File "/usr/lib/python2.7/subprocess.py", line 710, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1335, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
其中
arg_rtlamr 定义为:
= ['rtlamr','-format=csv', '-unique=true', \
'-duration=1m',\
'-msgtype='+msgtype,'-filterid='+meter_num , \
' > $HOME/data/elecamr' ]
权限为:
pi@carlton:~/gopath/bin $ ls -l
-rwxr-xr-x 1 pi pi 4079128 Jan 18 16:42 rtlamr
pi@carlton:~/data $ ls -l
-rw-rw-rw- 1 pi pi 78 Jan 20 14:03 elecamr
pi@carlton:~/log $ ls -l
-rw-rw-rw- 1 pi pi 483 Jan 20 15:10 logfile
非常感谢关于正在发生的事情的任何线索 约翰
cron 作业通常 运行 在不同的环境下。例如,PATH 可能未设置为您预期的值。