diff --git a/plogical/upgrade.py b/plogical/upgrade.py index 124d0f316..f7d4f85e1 100755 --- a/plogical/upgrade.py +++ b/plogical/upgrade.py @@ -115,12 +115,15 @@ class Upgrade: os._exit(0) @staticmethod - def executioner(command, component, do_exit=0): + def executioner(command, component, do_exit=0, shell=False): try: FNULL = open(os.devnull, 'w') count = 0 while True: - res = subprocess.call(shlex.split(command), stderr=subprocess.STDOUT) + if shell == False: + res = subprocess.call(shlex.split(command), stderr=subprocess.STDOUT) + else: + res = subprocess.call(command, stderr=subprocess.STDOUT, shell=True) if res != 0: count = count + 1 Upgrade.stdOut(component + ' failed, trying again, try number: ' + str(count), 0) @@ -2561,16 +2564,16 @@ vmail # Remove invalid crons from /etc/crontab Reference: https://github.com/usmannasir/cyberpanel/issues/216 command = """sed -i '/CyberCP/d' /etc/crontab""" - subprocess.call(command, shell=True) + Upgrade.executioner(command, command, 0, True) if os.path.exists('/usr/local/lsws/conf/httpd.conf'): # Setup /usr/local/lsws/conf/httpd.conf to use new Logformat standard for better stats and accesslogs command = """sed -i "s|^LogFormat.*|LogFormat '%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"' combined|g" /usr/local/lsws/conf/httpd.conf""" - subprocess.call(command, shell=True) + Upgrade.executioner(command, command, 0, True) # Fix all existing vhost confs to use new Logformat standard for better stats and accesslogs command = """find /usr/local/lsws/conf/vhosts/ -type f -name 'vhost.conf' -exec sed -i "s/.*CustomLog.*/ LogFormat '%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"' combined\n&/g" {} \;""" - subprocess.call(command, shell=True) + Upgrade.executioner(command, command, 0, True) # Install any Cyberpanel missing crons to root crontab so its visible to users via crontab -l as root user