我正在编写一个Rails应用程序,需要通过./script/runner
运行来脚本
虽然我可以把
#!/home/cannon/src/timetracker/script/runner
字符串
在顶部,这在生产中行不通,因为它需要更像
#!/var/www/loclahost/htdocs/timetracker/script/runner -e=production
型
由于./script
不在我路径中,而且我也不希望它在我的路径中,我如何允许设置它,
我使用cron作业在Linux机器上运行它
3条答案
按热度按时间toiithl61#
在shebang行中使用
env
来查找路径中的内容:字符串
yb3bgrhw2#
在你的(ruby)脚本的顶部使用它在本地./script/runner下重新执行它(然后它应该定义Rails,这样你就可以避免无限循环)
字符串
(So在顶部使用常规的'ruby' shebang,无论是
#!/usr/bin/ruby
还是#!/usr/bin/env ruby
或其他任何风格)4szc88ey3#
现在script/runner已经消失了,Rails 7使用“rails runner”,在与env的shebang行中使用它会出现问题,因为env不会解析空格并查找“rails runner”。
这是我发现的最优雅的解决方案:
字符串
来自https://github.com/rails/rails/issues/665