编程语言
首页 > 编程语言> > 如何在 Supervisor 配置文件中设置执行命令的工作目录?

如何在 Supervisor 配置文件中设置执行命令的工作目录?

作者:互联网

示例配置

假设我们有一个程序 test 需要在特定的目录 /path/to/working/directory 下运行,并且可执行文件路径为 /path/to/your/executable。你可以编辑或创建相应的配置文件,如 /etc/supervisor/conf.d/test.conf,并添加以下内容:

[program:test]
command=/path/to/your/executable --some-option
directory=/path/to/working/directory
autostart=true
autorestart=true
startsecs=10
stderr_logfile=/var/log/test.err.log
stdout_logfile=/var/log/test.out.log
user=your_username
environment=KEY1="value1",KEY2="value2"

Ini

配置参数说明

应用配置更改

在完成配置文件的创建或修改后,重新加载并更新 Supervisor 的配置:

sudo supervisorctl reread
sudo supervisorctl update

Bash

然后尝试启动程序:

sudo supervisorctl start test

Bash

检查运行状态

你可以通过以下命令检查进程的运行状态:

sudo supervisorctl status

Bash

如果进程未能启动,请检查日志文件以获取详细的错误信息:

sudo tail -f /var/log/test.err.log
sudo tail -f /var/log/test.out.log

Bash

日志文件通常会提供更多信息,帮助你诊断启动失败的原因。

例子

假设你有一个 Python 脚本需要运行,并且该脚本文件位于 /home/user/projects/my_project/main.py,工作目录为 /home/user/projects/my_project/,你可以创建如下配置:

[program:my_python_script]
command=/usr/bin/python3 main.py
directory=/home/user/projects/my_project
autostart=true
autorestart=true
startsecs=10
stderr_logfile=/var/log/my_python_script.err.log
stdout_logfile=/var/log/my_python_script.out.log
user=user_name
environment=PYTHON_ENV="production",DEBUG="true"

Ini

确保你已经创建了日志文件和具有相应的权限:

sudo touch /var/log/my_python_script.err.log /var/log/my_python_script.out.log
sudo chown user_name:user_group /var/log/my_python_script.err.log /var/log/my_python_script.out.log

Bash

重新加载、更新配置并启动:

sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start my_python_script

标签:
来源: