From ff2d60003d530a4ae882c3b3a90bdf1a92d54cc2 Mon Sep 17 00:00:00 2001 From: renweibo Date: Fri, 22 Dec 2023 23:08:10 +0800 Subject: [PATCH] fix problem when sv and systemctl exists at the same time in ubuntu, core command related dokku nginx plugin will fail. This will happend when an ubuntu server upgrade from early version. --- plugins/nginx-vhosts/install | 6 +++--- plugins/nginx-vhosts/internal-functions | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/plugins/nginx-vhosts/install b/plugins/nginx-vhosts/install index bd1919a4e..c86c6e261 100755 --- a/plugins/nginx-vhosts/install +++ b/plugins/nginx-vhosts/install @@ -77,10 +77,10 @@ trigger-nginx-vhosts-install() { ;; ubuntu) - if [[ -x /usr/bin/sv ]]; then - echo "%dokku ALL=(ALL) NOPASSWD:/usr/bin/sv enable $NGINX_INIT_NAME, /usr/bin/sv disable $NGINX_INIT_NAME, /usr/bin/sv reload $NGINX_INIT_NAME, /usr/bin/sv start $NGINX_INIT_NAME, /usr/bin/sv stop $NGINX_INIT_NAME, $NGINX_BIN -t, $NGINX_BIN -t -c *" >"$NGINX_SUDOERS_FILE" - elif [[ -x /usr/bin/systemctl ]]; then + if [[ -x /usr/bin/systemctl ]]; then echo "%dokku ALL=(ALL) NOPASSWD:/usr/bin/systemctl enable $NGINX_INIT_NAME, /usr/bin/systemctl disable $NGINX_INIT_NAME, /usr/bin/systemctl reload $NGINX_INIT_NAME, /usr/bin/systemctl start $NGINX_INIT_NAME, /usr/bin/systemctl stop $NGINX_INIT_NAME, $NGINX_BIN -t, $NGINX_BIN -t -c *" >"$NGINX_SUDOERS_FILE" + elif [[ -x /usr/bin/sv ]]; then + echo "%dokku ALL=(ALL) NOPASSWD:/usr/bin/sv enable $NGINX_INIT_NAME, /usr/bin/sv disable $NGINX_INIT_NAME, /usr/bin/sv reload $NGINX_INIT_NAME, /usr/bin/sv start $NGINX_INIT_NAME, /usr/bin/sv stop $NGINX_INIT_NAME, $NGINX_BIN -t, $NGINX_BIN -t -c *" >"$NGINX_SUDOERS_FILE" else echo "%dokku ALL=(ALL) NOPASSWD:/etc/init.d/$NGINX_INIT_NAME enable, /etc/init.d/$NGINX_INIT_NAME disable, /etc/init.d/$NGINX_INIT_NAME reload, /etc/init.d/$NGINX_INIT_NAME start, /etc/init.d/$NGINX_INIT_NAME stop, $NGINX_BIN -t, $NGINX_BIN -t -c *" >"$NGINX_SUDOERS_FILE" fi diff --git a/plugins/nginx-vhosts/internal-functions b/plugins/nginx-vhosts/internal-functions index c2221e009..838a201f0 100755 --- a/plugins/nginx-vhosts/internal-functions +++ b/plugins/nginx-vhosts/internal-functions @@ -149,10 +149,10 @@ fn-nginx-vhosts-nginx-init-cmd() { ubuntu) # support docker-based installations - if [[ -x /usr/bin/sv ]]; then - sudo /usr/bin/sv "$CMD" "$NGINX_INIT_NAME" - elif [[ -x /usr/bin/systemctl ]]; then + if [[ -x /usr/bin/systemctl ]]; then sudo /usr/bin/systemctl "$CMD" "$NGINX_INIT_NAME" + elif [[ -x /usr/bin/sv ]]; then + sudo /usr/bin/sv "$CMD" "$NGINX_INIT_NAME" elif [[ "$CMD" == "enable" ]] || [[ "$CMD" == "disable" ]]; then dokku_log_warn "Running $CMD is not possible for init.d managed services" else