【问题标题】:Use "npm start" as command to forever in .sh script在 .sh 脚本中永远使用“npm start”作为命令
【发布时间】:2017-08-02 03:50:03
【问题描述】:

我的/etc/init-d/forever 中有一个.sh 脚本来配置forever 如何启动和停止我的Node.js 应用程序。

我想用命令npm start 启动forever,这样我就可以从那里触发我的脚本。这可能吗?

我试过了

sudo forever start --sourceDir /home/my-app -c npm start 

但它的解释是错误的......

信息:永远处理文件:开始
错误:无法永远启动
错误:脚本 /root/start 不存在。

到目前为止,我的脚本是:

NAME=nodeapp
SOUREC_DIR=/home/nodeapp        
COMMAND="npm start"
SOURCE_NAME=index.js
USER=root
NODE_ENVIROMENT=production

pidfile=/var/run/$NAME.pid
logfile=/var/log/$NAME.log
forever=forever

start() {
    export NODE_ENV=$NODE_ENVIROMENT
    echo "Starting $NAME node instance : "

    touch $logfile
    chown $USER $logfile

    touch $pidfile
    chown $USER $pidfile

    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
    sudo -H -u $USER $forever start --pidFile $pidfile -l $logfile -a --sourceDir $SOUREC_DIR -c $COMMAND

    RETVAL=$?
}

【问题讨论】:

  • 您可能需要"npm start" 之后的应用程序目录路径,但不确定,请检查:github.com/foreverjs/forever/issues/540
  • @AntonioVal 我已经看到该解决方案但失败了。但是现在发现怎么做!也感谢您关注这个!

标签: node.js ubuntu forever


【解决方案1】:

所以我找到了答案。
必要时--sourceDir"npm start" 命令后的路径参数:

sudo forever --sourceDir /home/my-app -c "npm start" /

【讨论】:

  • 日志不会被写入永久日志。它将直接写入控制台。
【解决方案2】:

以下命令在后台运行永久命令并永久登录。

forever start -c "ng serve " ./

注意./

那你就可以了

forever list

并且将能够看到日志文件的状态和位置。

info:    Forever processes running
data:        uid  command                                                            script forever pid   id logfile                          uptime        
data:    [0] wOj1 ng serve                                              29500   24978    /home/user/.forever/wOj1.log 0:0:25:23.326 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 2017-03-25
    • 2013-09-26
    • 1970-01-01
    相关资源
    最近更新 更多