-1

I've been using the following code for a while now, however recently (in the last month) it's been failing:

        # Make sure WireGuard starts at boot
        systemd_cmd = 'ssh %s %s@%s "systemctl enable wg-quick@wg0"' % (SSH_OPTS, SSH_USER, get_gw_ret['pub_ipv4_addr'])
        p = subprocess.Popen(start_wg_cmd,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
        systemd_out = p.communicate()[1]
        systemd_out_message = str(systemd_out)[2:-1]

A successful run of systemctl enable wg-quick@wg0 is the goal. The expected output is something like;

Created symlink /etc/systemd/system/multi-user.target.wants/wg-quick@wg0.service → /lib/systemd/system/wg-quick@.service.

However these days it returns:

wg-quick: `wg0\' already exists\\n

I've narrowed it down to the above python code since executing this command directly in a bash shell is always successful. The complete commands looks like:

ssh -o StrictHostKeyChecking=no root@10.0.0.8 "systemctl enable wg-quick@wg0"

Any ideas what might be happening?

1 Answers1

0

Someone pointed out my typo:

- p = subprocess.Popen(start_wg_cmd,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
+ p = subprocess.Popen(systemd_cmd,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)

Thanks for reading!