This unit $ cat /etc/systemd/system/noip-duc.service [Unit] Description=No-IP Dynamic Update Client After=network.target auditd.service
[Service] EnvironmentFile=/etc/sysconfig/noip-duc ExecStart=/usr/local/bin/noip-duc Restart=on-failure Type=simple
[Install] WantedBy=multi-user.target always fails at boot time with the message status=2/INVALIDARGUMENT
Here is an extract from the system log (a fuller extract is attached): Mar 18 07:57:56 OaklandWeather.localdomain systemd[1]: Started noip- duc.service - No-IP Dynamic Update Client. Mar 18 07:57:58 OaklandWeather.localdomain systemd[1]: noip-duc.service: Main process exited, code=exited, status=2/INVALIDARGUMENT Mar 18 07:57:58 OaklandWeather.localdomain systemd[1]: noip-duc.service: Failed with result 'exit-code'. Mar 18 07:57:58 OaklandWeather.localdomain systemd[1]: noip-duc.service: Scheduled restart job, restart counter is at 1. Mar 18 07:57:58 OaklandWeather.localdomain systemd[1]: Stopped noip- duc.service - No-IP Dynamic Update Client. Mar 18 07:57:58 OaklandWeather.localdomain systemd[1]: Started noip- duc.service - No-IP Dynamic Update Client. Mar 18 07:57:58 OaklandWeather.localdomain systemd[1]: noip-duc.service: Main process exited, code=exited, status=2/INVALIDARGUMENT Mar 18 07:57:58 OaklandWeather.localdomain systemd[1]: noip-duc.service: Failed with result 'exit-code'. Mar 18 07:57:58 OaklandWeather.localdomain systemd[1]: noip-duc.service: Scheduled restart job, restart counter is at 2.
However if the unit is started from the console after the boot process is complete: $ systemctrl start noip-duc.service it succeeds. How can I find out what the argument is with which systemd is invoking noip-duc, so I can understand why it is invalid at boot time but valid when the unit is started afterwards from the console? I would simply recompile it to output this, but noip-duc is written in the rust programming language, which I to lazy to learn for this one application.