diff --git a/scripts/init.d/mw.service.tpl b/scripts/init.d/mw.service.tpl index aa21242ac..d43c41387 100755 --- a/scripts/init.d/mw.service.tpl +++ b/scripts/init.d/mw.service.tpl @@ -4,7 +4,7 @@ After=network.target [Service] Type=simple -WorkingDirectory={$SERVER_PATH} +WorkingDirectory={$SERVER_PATH}/web EnvironmentFile={$SERVER_PATH}/scripts/init.d/service.sh ExecStart=gunicorn -c setting.py app:app ExecStop=kill -HUP $MAINID diff --git a/web/admin/setup/init_cmd.py b/web/admin/setup/init_cmd.py index a307b494a..de1dffa90 100644 --- a/web/admin/setup/init_cmd.py +++ b/web/admin/setup/init_cmd.py @@ -54,4 +54,32 @@ def init_cmd(): mw.execShell('chmod +x ' + initd_bin) # 加入自启动 mw.execShell('which update-rc.d && update-rc.d -f mw defaults') - return True \ No newline at end of file + + if mw.getOsName() == 'opensuse': + init_cmd_systemd() + return True + + + + +def init_cmd_systemd(): + systemctl + sysCfgDir = mw.systemdCfgDir() + + systemd_mw = sysCfgDir + '/mw.service' + systemd_mw_task = sysCfgDir + '/mw-task.service' + + systemd_mw_tpl = mw.getPanelDir() + '/scripts/init.d/mw.service.tpl' + systemd_mw_task_tpl = mw.getPanelDir() + '/scripts/init.d/mw-task.service.tpl' + + if os.path.exists(systemd_mw): + os.remove(systemd_mw) + if os.path.exists(systemd_mw_task): + os.remove(systemd_mw_task) + + doContentReplace(systemd_mw_tpl, systemd_mw) + doContentReplace(systemd_mw_task_tpl, systemd_mw_task) + + mw.execShell('systemctl enable mw') + mw.execShell('systemctl enable mw-task') + mw.execShell('systemctl daemon-reload') \ No newline at end of file diff --git a/web/core/mw.py b/web/core/mw.py index 0e9e15288..9f618c3b8 100644 --- a/web/core/mw.py +++ b/web/core/mw.py @@ -543,13 +543,11 @@ def getSslCrt(): def getOs(): return sys.platform - def getOsName(): cmd = "cat /etc/*-release | grep PRETTY_NAME |awk -F = '{print $2}' | awk -F '\"' '{print $2}'| awk '{print $1}'" data = execShell(cmd) return data[0].strip().lower() - def getOsID(): cmd = "cat /etc/*-release | grep VERSION_ID | awk -F = '{print $2}' | awk -F '\"' '{print $2}'" data = execShell(cmd)