关于Supervisor(v4.2.5)的环境变量疑问

基本说明:

  • 我想通过Supervisor正确启动脚本/root/Software/mcsmanager/mcsmanager_linux_release/start-web.sh
    脚本内容如下
#!/bin/bash

cd web
node app.js

关于环境
node已经安装,已配置/etc/profile并bash

#nodejs
export NODEJS_HOME=/usr/local/nodejs/node-v20.11.0-linux-x64
export PATH=$PATH:$NODEJS_HOME/bin

通过网上搜索资料为 /opt/1panel/tools/supervisord/supervisor.d/mcsmanager.ini增加字段无果,实际效果依旧

environment = NODEJSPATH=$NODEJSPATH:/usr/local/nodejs/node-v20.11.0-linux-x64/bin
[program:mcsmanager]
environment             = NODEJSPATH=$NODEJSPATH:/usr/local/nodejs/node-v20.11.0-linux-x64/bin
command                 = /root/Software/mcsmanager/mcsmanager_linux_release/start-web.sh
directory               = /root/Software/mcsmanager/mcsmanager_linux_release
autorestart             = true
startsecs               = 3
stdout_logfile          = /opt/1panel/tools/supervisord/log/mcsmanager.out.log
stderr_logfile          = /opt/1panel/tools/supervisord/log/mcsmanager.err.log
stdout_logfile_maxbytes = 2MB
stderr_logfile_maxbytes = 2MB
user                    = root
priority                = 999
numprocs                = 1
process_name            = %(program_name)s_%(process_num)02d

还是很迷惑,不知如何解决,想在此寻求方法,请大佬留下自己的看法 :laughing:

command 修改为 node xxx/web/app.js 试一下

类似于/usr/local/nodejs/node-v20.11.0-linux-x64/bin/node /root/Software/mcsmanager/mcsmanager_linux_release/start-web.sh方法试过了,不行的,因为项目用的相对路径,还是会报错的,不仅是这个方法,我还试图改过那个启动脚本。使用的绝对路径,是会报错,导致项目启动失败

已经使用Tmux方案临时代替,谢谢你的指导建议

之前找到了解决方案,给忘了,现在给自己回个帖

由于无法调用环境变量,使用以下方法解决,就是直接在command中直接写入node的绝对路径,再结合脚本内容,写入以下命令

/usr/local/nodejs/node-v20.11.0-linux-x64/bin/node /root/Software/mcsmanager/mcsmanager_linux_release/web/app.js

注明:不建议直接使用 源文 选项进行修改保存,否则这条守护进程会直接消失,疑似是bug,出现在1.9.x(具体版本忘了,因为截止目前最新的1.10.x,都没有再测试了,不知道有没有修复),建议还是直接使用 编辑 即可