A possible fix would be to make the unit execution conditional to the update-motd fragment being executable:
[Unit] ConditionFileIsExecutable=/etc/update-motd.d/50-motd-news I'm not sure if this should be added to motd-news.service, motd- news.timer or both. ** Description changed: update-motd(5) says: - Executable scripts in /etc/update-motd.d/* are executed by pam_motd(8) as the root user at each - login, and this information is concatenated in /run/motd.dynamic. The order of script execu‐ - tion is determined by the run-parts(8) --lsbsysinit option (basically alphabetical order, with - a few caveats). + Executable scripts in /etc/update-motd.d/* are executed by pam_motd(8) as the root user at each + login, and this information is concatenated in /run/motd.dynamic. The order of script execu‐ + tion is determined by the run-parts(8) --lsbsysinit option (basically alphabetical order, with + a few caveats). So sysadmins are used to "chmod -x" motd fragments from /etc/update- motd.d/ to prevent their execution. When doing so for /etc/update- motd.d/50-motd-news, I noticed that motd-news.timer was still trying to execute the motd-news.service unit which then logged a failure: - systemd[3704]: motd-news.service: Failed to execute command: Permission denied - systemd[3704]: motd-news.service: Failed at step EXEC spawning /etc/update-motd.d/50-motd-news: - Permission denied - systemd[1]: motd-news.service: Main process exited, code=exited, status=203/EXEC - systemd[1]: motd-news.service: Failed with result 'exit-code'. - systemd[1]: Failed to start Message of the Day. + systemd[3704]: motd-news.service: Failed to execute command: Permission denied + systemd[3704]: motd-news.service: Failed at step EXEC spawning /etc/update-motd.d/50-motd-news: + Permission denied + systemd[1]: motd-news.service: Main process exited, code=exited, status=203/EXEC + systemd[1]: motd-news.service: Failed with result 'exit-code'. + systemd[1]: Failed to start Message of the Day. + + + The motd-news.service unit looks like this: + + $ systemctl cat motd-news.service + # /lib/systemd/system/motd-news.service + [Unit] + Description=Message of the Day + After=network-online.target + Documentation=man:update-motd(8) + + [Service] + Type=oneshot + ExecStart=/etc/update-motd.d/50-motd-news --force This problem was observed on a Bionic system: $ lsb_release -rd Description: Ubuntu 18.04.1 LTS Release: 18.04 $ apt-cache policy base-files base-files: - Installed: 10.1ubuntu2.3 - Candidate: 10.1ubuntu2.3 - Version table: - *** 10.1ubuntu2.3 500 - 500 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages - 100 /var/lib/dpkg/status - 10.1ubuntu2.2 500 - 500 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages - 10.1ubuntu2 500 - 500 http://archive.ubuntu.com/ubuntu bionic/main amd64 Packages + Installed: 10.1ubuntu2.3 + Candidate: 10.1ubuntu2.3 + Version table: + *** 10.1ubuntu2.3 500 + 500 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages + 100 /var/lib/dpkg/status + 10.1ubuntu2.2 500 + 500 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages + 10.1ubuntu2 500 + 500 http://archive.ubuntu.com/ubuntu bionic/main amd64 Packages But the problem also exist in Disco. -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1803601 Title: motd-news.service scheduled even when /etc/update-motd.d/50-motd-news is not executable To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/base-files/+bug/1803601/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
