1. 首页>
  2. 技术文章>
  3. supervisor的command执行两条命令

supervisor的command执行两条命令

2/10/23 6:01:32 PM 浏览 2065 评论 0

supervisor

如下supervisor的进程的comand配置参数只能写一个命令

1、要执行多条命令,可以写个sh文件包含多条命令,然后

sh -x   xxxx.sh

,但这样又多了一个文件,

2、把所有命令放在字符串,然后用eval来执行,这样在shell窗口可以执行,但放在supervisor报找不到eval命令。比如:

command = eval  "cd /etc/init.d&&./jenkins start"

这样不能在supervisor运行。

3、改成

/bin/bash -c "cd /etc/init.d&&./jenkins start"

 后可以正常运行。当然如果只是指定某个目录下执行,supervisor可以配置文件中指定执行的目录:

#命令执行的目录
directory=/my/publish/test-api/

另外,要特外提一下supervisor的就是supvervisor的开机启动是在/ect/systemd/system/supvervisord.service,如果指定了目录,则新的配置文件如下:

[Unit]
Description=Supervisor daemon
 
[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /my/software/supervisor/supervisord.conf
ExecStop=/usr/bin/supervisorctl -c /my/software/supervisor/supervisord.conf shutdown
ExecReload=/usr/bin/supervisorctl -c /my/software/supervisor/supervisord.conf reload
KillMode=process
Restart=on-failure
RestartSec=42s
 
[Install]
WantedBy=multi-user.target

使用systemctl命令开启启动或者不开机启动这个服务。

网友讨论