2011-06-24 23 views
4

我正在写一个Rails应用程序,并需要通过./script/runner有一个亲戚家当线

运行脚本来,而我可以把

#!/home/cannon/src/timetracker/script/runner 

在顶部,在生产不会工作需要它更喜欢

#!/var/www/loclahost/htdocs/timetracker/script/runner -e=production 

因为./script是不是在我的道路,我不希望它是,我怎么能允许这样设置,

我使用cron作业来在Linux中

回答

9

使用env在家当线看东西的路径运行:

#!/usr/bin/env ./script/runner 
+1

这是所有shebangs应该如何写的,因为这意味着您的脚本不需要在某个位置安装程序。例如'#!/ usr/bin/env bash' – Dunes

+0

所以我可以传递一个相对路径到env?将是相对于脚本的位置,或从它被称为,哪个idk哪里cron的密码是... – loosecannon

+1

哦,它是相对于你的密码。克龙的手册页应该能够告诉你。 –

0

使用此为您的顶部(红宝石)脚本,重新执行中它的本地./script/runner下(然后应该定义Rails的,所以你避免无限循环)

exec("./script/runner",$0,*ARGV) unless defined?(Rails) 

(因此在顶部使用常规的“红宝石”家当,无论是它是#!/usr/bin/ruby#!/usr/bin/env ruby或其他什么味道)