簡體   English   中英

帶有Herbang Scheduler的Node.js應用程序存在Shebang行問題

[英]Node.js application with Heroku Scheduler having a Shebang line issue

我正在嘗試將一個小的Node.js應用程序部署到Heroku,然后讓Heroku Scheduler每10分鍾運行一次該應用程序。 我們構建此應用程序的客戶前供應商也將其托管在Heroku上,因此無需更改我收到的源代碼中的任何內容。 不過,我從Heroku日志中收到以下錯誤。

2018-05-09T07:26:07.710882+00:00 app[api]: Starting process with command `fetch` by user scheduler@addons.heroku.com
2018-05-09T07:26:11.124833+00:00 heroku[scheduler.2653]: Starting process with command `fetch`
2018-05-09T07:26:11.718182+00:00 heroku[scheduler.2653]: State changed from starting to up
2018-05-09T07:26:13.647479+00:00 heroku[scheduler.2653]: State changed from up to complete
2018-05-09T07:26:13.629258+00:00 heroku[scheduler.2653]: Process exited with status 126
2018-05-09T07:26:13.542885+00:00 app[scheduler.2653]: bash: /app/bin/fetch: /usr/local/bin/node: bad interpreter: No such file or directory

顯然,運行我的index.js文件的fetch文件中的“ Shebang”行存在問題:

#!/usr/local/bin/node
var path = require('path');
require(path.join(__dirname, '../index')).start();

我對Node.js和Javascript相當陌生,因此不確定我是否完全了解“ Shebang”這一行的目的。 但是我猜它指向了錯誤的位置或類似的東西? 我如何弄清楚該行中要進行哪些更改?

您無需在“提取”文件中使用任何“ shebang”行。 我建議您只需刪除#!/usr/local/bin/node行,然后將以下內容指定為Heroku Scheduler命令:

node <path_to_fetch.js>

只要您的應用程序中有一個node.js buildpack ,heroku調度程序就可以通過一次性的 dyno啟動您的node.js應用程序。

使用此處的說明檢查您的應用程序中是否有一個node.js buildpack,並在必要時添加它。

就是說,如果您確實想使用“ shebang”運行您的應用程序,請將其更改為#!/usr/bin/env node 在這種情況下,請在Heroku調度程序命令中省略單詞node

Shebang行告訴要使用哪個解釋器來運行文件。 您收到的錯誤表明該節點未在shebang指向的位置中安裝該節點。 通常可以使用#!/usr/bin/env node

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM