Package: ppp Version: 2.4.8-1+2 File: /etc/ppp/ip-up.d/0000usepeerdns In /etc/ppp/ip-up.d/0000usepeerdns we see:
# exit if systemd-resolved is running [ -x /usr/bin/systemd-resolve ] && \ /usr/bin/systemd-resolve --status >/dev/null && exit 0 However this is the wrong test to see "if systemd-resolved is running". Proof: # systemctl start systemd-resolved # systemctl status systemd-resolved|grep running Active: active (running) since Wed 2021-01-06 19:05:09 CST; 12s ago # systemctl stop systemd-resolved # systemctl status systemd-resolved|grep running # systemctl status systemd-resolved|grep Active Active: inactive (dead) since Wed 2021-01-06 19:05:35 CST; 20s ago The current test in /etc/ppp/ip-up.d/0000usepeerdns will give TRUE even "if systemd-resolved is NOT running": # systemctl start systemd-resolved # /usr/bin/systemd-resolve --status >/dev/null && echo TRUE TRUE # systemctl stop systemd-resolved # /usr/bin/systemd-resolve --status >/dev/null && echo TRUE TRUE Probing further, # systemctl disable systemd-resolved Removed /etc/systemd/system/multi-user.target.wants/systemd-resolved.service. Removed /etc/systemd/system/dbus-org.freedesktop.resolve1.service. # /usr/bin/systemd-resolve --status >/dev/null && echo TRUE TRUE # systemctl --now disable systemd-resolved # /usr/bin/systemd-resolve --status >/dev/null && echo TRUE Failed to get global data: Unit dbus-org.freedesktop.resolve1.service not found. OK, we finally got it to not return TRUE, in fact due to a bug (it can't find a file, so bombs early,) which I will report to them... OK, now let us research what the documented exit value of /usr/bin/systemd-resolve is. # man systemd-resolve No manual entry for systemd-resolve # systemd-resolve --help | grep man See the resolvectl(1) man page for details. Ah, it turns out /usr/bin/systemd-resolve lrwxrwxrwx 1 root 10 01-03 00:06 systemd-resolve -> resolvectl is a symlink all along. Anyway the resolvectl man page doesn't mention anything about exit statuses. So maybe one needs a junky line like: # systemctl status systemd-resolved|grep Active|grep -q running && echo TRUE to test if something is running. I didn't explore further. All I know is the current test used in 0000usepeerdns is wrong. (I did look in /run and did find some stuff, but it doesn't seem affected by my tests....) Wait! I found the correct test for you: $ man systemctl is-active PATTERN... Check whether any of the specified units are active (i.e. running). Returns an exit code 0 if at least one is active, or non-zero otherwise. Unless --quiet is specified, this will also print the current unit state to standard output. # systemctl stop systemd-resolved # systemctl --quiet is-active systemd-resolved && echo TRUE # systemctl start systemd-resolved # systemctl --quiet is-active systemd-resolved && echo TRUE TRUE