這裏是我的腳本(randombg.py):Python腳本在crontab中不能正常工作
#!/usr/bin/env python
# -*- coding: utf8 -*-
import random
import subprocess
import os
BACKGROUND = '/home/david/wallpaper/dell2312'
IGNORE_FILES = ['/home/david/wallpaper/dell2312/.directory']
def enumerate():
global BACKGROUND
file_collections = []
for root, dirs, files in os.walk(BACKGROUND):
for file in files:
file_collections.append(os.path.join(root, file))
return file_collections
def randombg():
select_files = list(set(enumerate())-set(IGNORE_FILES))
subprocess.call(['feh', '--bg-scale', random.choice(select_files)])
def main():
while 1:
randombg()
if __name__ == '__main__':
main()
我已經運行chmod a+x randombg.py
並將其與python randombg.py
工作。讓我們假設它的路徑是/path/to/randombg.py.
此外,運行/path/to/randombg.py
工作。
然而,當我加入它下面的crontab:
1 * * * * /path/to/randombg.py
或
01 * * * * python /path/to/randombg.py
或
01 * * * * /usr/bin/python /path/to/randombg.py
都失敗了。
我想不通。誰能解釋一下?
PS:ArchLinux的
的介紹:
當我運行ps aux|grep python
,我找不到randombg.py
,而有時會出現。從crontab中重定向標準錯誤
Addtional日誌:
import: unable to open X server `' @ error/import.c/ImportImageCommand/361.
import: unable to open X server `' @ error/import.c/ImportImageCommand/361.
import: unable to open X server `' @ error/import.c/ImportImageCommand/361.
/home/david/dotfiles/randombg.py: line 9: BACKGROUND: command not found
/home/david/dotfiles/randombg.py: line 10: IGNORE_FILES: command not found
/home/david/dotfiles/randombg.py: line 13: syntax error near unexpected token `('
/home/david/dotfiles/randombg.py: line 13: ` def enumerate():'
你的'while'循環將永遠運行 – Blender
對不起,我忘了刪除它。 – holys
你能將錯誤重定向到一個文件嗎? – Blender