2013-04-23 31 views
6

supervisord.conf包含像這樣一堆程序:supervisord找不到命令

[program:gtaskqueue_puller_1] 
directory=/root/scripts/gtaskqueue_puller 
command=venv/bin/gtaskqueue_puller "foo" 
autostart=true 
autorestart=true 

[program:gtaskqueue_puller_2] 
directory=/root/scripts/gtaskqueue_puller 
command=venv/bin/gtaskqueue_puller "bar" 
autostart=true 
autorestart=true 

但有時當我重新啓動supervisord,我得到

can't find command venv/bin/gtaskqueue_puller 

但是當我cd成該目錄並運行相同的命令,它按預期工作。

+1

你可以提供給VENV/bin中的絕對路徑? supervisor conf提供'directory'指令http://supervisord.org/configuration.html – dm03514 2013-04-23 14:01:39

+2

是的,我已經設置了'directory'選項。剛剛嘗試使用命令中的完整路徑,它正在工作。奇怪的。 – john2x 2013-04-23 14:06:57

+0

我可以看到相同的行爲 - 即使設置了目錄,有時候管理員也無法找到具有相對路徑的命令,並且可以手動運行此目錄中的命令。 – 2014-02-13 05:10:26

回答

6

即使設置了目錄,有時候管理員也無法找到具有相對路徑的命令。

所以使用:

[program:gtaskqueue_puller_1] 
directory=/root/scripts/gtaskqueue_puller 
command=/root/scripts/gtaskqueue_puller/venv/bin/gtaskqueue_puller "foo" 
autostart=true 
autorestart=true 

[program:gtaskqueue_puller_2] 
directory=/root/scripts/gtaskqueue_puller 
command=/root/scripts/gtaskqueue_puller/venv/bin/gtaskqueue_puller "bar" 
autostart=true 
autorestart=true 

而不是:

[program:gtaskqueue_puller_1] 
directory=/root/scripts/gtaskqueue_puller 
command=venv/bin/gtaskqueue_puller "foo" 
autostart=true 
autorestart=true 

[program:gtaskqueue_puller_2] 
directory=/root/scripts/gtaskqueue_puller 
command=venv/bin/gtaskqueue_puller "bar" 
autostart=true 
autorestart=true