Systemd

From Bitpost wiki
Revision as of 15:53, 13 December 2017 by M (talk | contribs)

Systemd has done serious damage to networkmanager dns cron ntp... We have to adapt to it, here we go.

NTP

DO NOT INSTALL ntp daemon any more, instead we now have systemd-timesyncd. That relies on systemd-networkd. Here's what I did on gold (which needed a specific ntp server)...

sudo apt remove ntp
emacs /etc/systemd/timesyncd.conf # if you need to hit a non-standard ntp server
systemctl status systemd-networkd systemd-timedated systemd-timesyncd
sudo timedatectl set-ntp on
sudo systemctl start systemd-networkd systemd-timedated systemd-timesyncd


Timers

Use these in place of cron. Each one typically does one task.

   systemd timer services
   ----------------------
   https://www.certdepot.net/rhel7-use-systemd-timers/

   create a script to do the work:
     echo "/usr/sbin/logrotate /etc/logrotate.conf" >/usr/local/sbin/logrotate.sh

   create a service file:
     nano /usr/lib/systemd/system/logrotate.service
       [Unit]
       Description=Rotate logs

       [Service]
       Type=simple
       ExecStart=/usr/local/sbin/logrotate.sh
       User=root

       [Install]
       WantedBy=multi-user.target

   create a timer file:
     nano /usr/lib/systemd/system/logrotate.timer
       [Unit]
       Description=Rotate logs as needed every night at 2am

       [Timer]
       OnCalendar=*-*-* 02:00:00
       Unit=logrotate.service

       [Install]
       WantedBy=multi-user.target

   activate on boot:
     # NOTE you must enable the service (even though not run directly), plus the timer
     # then start the timer
     systemctl enable logrotate       
     systemctl enable logrotate.timer
     systemctl start logrotate.timer

   utils:
     systemctl is-enabled ####.timer
     systemctl is-active ####.timer   # to see if timer is active and enabled
     systemctl start ####      # to run service immediately
     systemctl status ####     # nice status output
     systemctl daemon-reload   # to restart services after config changes
     systemctl list-timers [####*]  # to list timers that start with #####