Yes, a symlink you mentioned will probably work for him.

From the link you posted:
sudo systemctl edit --full nginx.service

This will load the current unit file into the editor, where it can be modified. When the editor exits, the changed file will be written to /etc/systemd/system, which will take precedence over the system's unit definition (usually found somewhere in /lib/systemd/system).

The above does exactly what I was advising; write the new unit file to /etc/systemd/system/ .


I actually have /etc/systemd/system/openvpn@server.service on Fedora 22:
.include /lib/systemd/system/openvpn@.service

[Unit]
After=syslog.target
After=network.target

[Service]
Environment="OPENSSL_ENABLE_MD5_VERIFY=1"
This method only overrides some of what is in /lib/systemd/system/openvpn@.service.
Therefor, any system upgrade changes are passed thru.
[0:root@elmo shorewall]$ ls -lZ /lib/systemd/system/openvpn@.service /etc/systemd/system/openvpn@server.service
-rw-r--r--. 1 root root system_u:object_r:systemd_unit_file_t:s0 148 Aug  6  2015 /etc/systemd/system/openvpn@server.service
-rw-r--r--. 1 root root system_u:object_r:systemd_unit_file_t:s0 321 May 10  2016 /lib/systemd/system/openvpn@.service

[0:root@elmo shorewall]$ systemctl status openvpn@server.service
openvpn@server.service - OpenVPN Robust And Highly Flexible Tunneling Application On server
   Loaded: loaded (/etc/systemd/system/openvpn@server.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2017-11-18 20:55:02 EST; 1 weeks 0 days ago
  Process: 2095 ExecStart=/usr/sbin/openvpn --daemon --writepid /var/run/openvpn/%i.pid --cd /etc/openvpn/ --config %i.conf (code=exited, status=0/SUCCESS)
 Main PID: 2228 (openvpn)
   CGroup: /system.slice/system-openvpn.slice/openvpn@server.service
           └─2228 /usr/sbin/openvpn --daemon --writepid /var/run/openvpn/server.pid --cd /etc/openvpn/ --config server.conf

/etc/systemd/system/mariadb.service:
.include /usr/lib/systemd/system/mariadb.service

[Service]
#LimitNOFILE=infinity
LimitNOFILE=65536
LimitMEMLOCK=infinity

/etc/systemd/system/clamd@scan.service:
.include /usr/lib/systemd/system/clamd@.service

[Unit]
Description = Generic clamav scanner daemon

[Install]
WantedBy = multi-user.target

[Service]
StandardOutput=null
StandardError=null
Restart=no
#CPUSchedulingPolicy=idle
#IOSchedulingClass=idle
Nice=16
CPUSchedulingPolicy=other
IOSchedulingClass=best-effort
# 0 = highest, 7 = lowest
IOSchedulingPriority=5

/etc/systemd/system/spamassassin.service:
.include /usr/lib/systemd/system/spamassassin.service

[Service]
Restart=no
This technique only overrides the installation .service unit with the lines provided.

This is NOT corrupting systemd.  It's how systemd was designed to be used.

Bill