In a previous post, I presented the various mechanisms used for customizing Systemd unit files.
These mechanisms are so rich that it is not easy to get the real picture of the final unit file.
You have to search in different locations (/usr/lib/systemd/system, /etc/systemd/system, /etc/systemd/system/myservice.service.d/).
Coming with the RHEL 7.2 release, the new systemctl cat command serves two main purposes:
- to allow an administrator to quickly display the content of a given unit file,
- to take into account drop-in files when debugging unit files.
For example, let’s install the mariadb-server package:
# yum install -y mariadb-server
Now, let’s create the /etc/systemd/system/mariadb.service.d directory:
# mkdir /etc/systemd/system/mariadb.service.d # cd /etc/systemd/system/mariadb.service.d
Then, let’s create the foo.conf file and paste the following lines into it:
Finally, let’s display the mariadb unit file:
# systemctl cat mariadb.service # /usr/lib/systemd/system/mariadb.service <== unit file location [Unit] Description=MariaDB database server After=syslog.target After=network.target [Service] Type=simple User=mysql Group=mysql ExecStartPre=/usr/libexec/mariadb-prepare-db-dir %n ExecStart=/usr/bin/mysqld_safe --basedir=/usr ExecStartPost=/usr/libexec/mariadb-wait-ready $MAINPID # Give a reasonable amount of time for the server to start up/shut down TimeoutSec=300 # Place temp files in a secure directory, not /tmp PrivateTmp=true [Install] WantedBy=multi-user.target # /etc/systemd/system/mariadb.service.d/foo.conf <== drop-in file [Service] LimitNOFILE=10000
Now, you can see the unit file location displayed at the top and the content of the drop-in file at the end.
The systemctl cat command should become a reflex for all the system administrators when they want to know the precise configuration of a given service.
Note: Most of the original comments have been removed from the mariadb.service file here for brevity’s sake. I invit you to look at it in details because it provides a lot of useful comments, reminding you of the available Systemd customization mechanisms.