当cron运行我的脚本时,我收到此错误/usr/bin/env:node:没有这样的文件或目录.
当我以我的用户身份运行脚本时,脚本运行正常,而不是作为cron.我猜这是因为节点不在运行cron的用户的PATH上?
我怎样才能让这个shebang与cron一起工作?
$节点给了我什么
/home/myuser/.nvm/v0.11.14/bin/node
您可以通过临时创建crontab条目来查看该环境的外观,如:
* * * * * printenv > crontab-environment
您可以在命令本身的crontab中显式设置$PATH:
* * * * * PATH=$PATH:/home/myuser/.nvm/v0.11.14/bin
或者在crontab中的单独行中:
PATH = /usr/bin:/bin:/home/myuser/.nvm/v0.11.14/bin
您不能(直接)使用通常的PATH = $PATH:/ new / dir语法将目录附加到环境设置行中的$PATH,因为变量引用不会替换为这样的行.它们在crontab命令行中处理.
man 5 crontab了解详情.
另一种选择是在脚本本身中使用显式完整路径,进行更改
#!/usr/bin/env node
至
#!/home/myuser/.nvm/v0.11.14/bin/node
您需要为在其他位置安装节点的每个系统自定义此选项.或者您可以安排将节点(或nodeJs?)安装在一致的位置.
总结以上是内存溢出为你收集整理的linux – Ubuntu cron shebang不工作全部内容,希望文章能够帮你解决linux – Ubuntu cron shebang不工作所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)