测试python程序在Raspi上从cron运行时失败

时间:2017-01-20 20:31:02

标签: python linux python-2.7 cron popen

我在RASP PI 2B [Jessie lite]上有一个python程序,从终端命令行运行得很好。但是,当尝试从cron运行时,它会失败,如下所述。我已经设置了mta和logging。

来自syslog的

  

1月20日15:10:01 carlton CRON [2189]:
  (pi)CMD(python amr_water_r9c.py carl1022_104 1541513276> $ HOME / log / logfile 2>& 1)

python程序使用带有

的POPEN启动两个任务

第一个任务开始正常

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

非常感谢任何有关正在发生的事情的线索 约翰

1 个答案:

答案 0 :(得分:0)

cron作业通常在不同的环境下运行。例如,PATH可能未按预期设置为值。