首页 > 解决方案 > 将 systemd 脚本转换为 CentOS 6 的 .init 脚本

问题描述

我不太擅长 shell 脚本,不太擅长我的意思是我根本不知道。

我需要将此 systemd 单元文件转换为 .init 脚本,它用于设置 nginx 和 uwsgi 以提供 Web 应用程序。

[Unit]
Description=uWSGI instance to serve myproject
After=network.target

[Service]
User=user
Group=nginx
WorkingDirectory=/home/user/myproject
Environment="PATH=/home/user/myproject/myprojectenv/bin"
ExecStart=/home/user/myproject/myprojectenv/bin/uwsgi --ini myproject.ini

[Install]
WantedBy=multi-user.target

CentOS 6 不支持 systemd,请帮忙。

标签: shellserverscriptingcentossystemd

解决方案


在不支持systemd您的系统中,您可以使用其他主管,例如,如果需要可移植且与 macOS/BSD 兼容的东西,您可以使用immortal

这是一个run.yml可以开始的基础uwsgi

cmd: /home/user/myproject/myprojectenv/bin/uwsgi --ini myproject.ini
cwd: /home/user/myproject/myprojectenv
log:
    file: /var/log/my-project.log

您还可以查看文档中的uWSGI 示例/etc/init/uwsgi.conf例如:

# simple uWSGI script

description "uwsgi tiny instance"
start on runlevel [2345]
stop on runlevel [06]

respawn

exec uwsgi --master --processes 4 --die-on-term --socket :3031 --wsgi-file /var/www/myapp.wsgi

在这种情况下,正在使用 Upstart,请检查以下答案:https ://serverfault.com/a/292000/94862


推荐阅读