Tag: systemctl

  • View systemctl service file

    View systemctl service file

    To view the content of a systemd service file, run the command

    systemctl cat SERVICE_NAME_HERE
    

    Example

    boby@sok-01:~$ systemctl cat nginx
    # /lib/systemd/system/nginx.service
    # Stop dance for nginx
    # =======================
    #
    # ExecStop sends SIGSTOP (graceful stop) to the nginx process.
    # If, after 5s (–retry QUIT/5) nginx is still running, systemd takes control
    # and sends SIGTERM (fast shutdown) to the main process.
    # After another 5s (TimeoutStopSec=5), and if nginx is alive, systemd sends
    # SIGKILL to all the remaining processes in the process group (KillMode=mixed).
    #
    # nginx signals reference doc:
    # http://nginx.org/en/docs/control.html
    #
    [Unit]
    Description=A high performance web server and a reverse proxy server
    Documentation=man:nginx(8)
    After=network.target

    [Service]
    Type=forking
    PIDFile=/run/nginx.pid
    ExecStartPre=/usr/sbin/nginx -t -q -g ‘daemon on; master_process on;’
    ExecStart=/usr/sbin/nginx -g ‘daemon on; master_process on;’
    ExecReload=/usr/sbin/nginx -g ‘daemon on; master_process on;’ -s reload
    ExecStop=-/sbin/start-stop-daemon –quiet –stop –retry QUIT/5 –pidfile /run/nginx.pid
    TimeoutStopSec=5
    KillMode=mixed

    [Install]
    WantedBy=multi-user.target
    boby@sok-01:~$

  • Enable rc.local

    To enable /etc/rc.local file run on system startup on servers runing systemd, you can run

    systemctl enable rc-local
    

    Now you need to create file /etc/rc.local with 755 permission.

    touch /etc/rc.local
    chmod 755 /etc/rc.local
    

    See Autostart

  • Systemctl Start a Service on Boot

    To enable a service on boot, run

    systemctl enable SERVICE_NAME
    

    systemctl start service on boot

    To disable a service from starting on boot, run

    systemctl disable SERVICE_NAME
    

    See systemctl

  • How to check if systemctl service is enabled

    To check if a systemctl service is enabled, run

    systemctl is-enabled SERVICE_NAME

    Example

    [root@mail ~]# systemctl is-enabled memcached
    disabled
    [root@mail ~]#

    You can enable the service, so it run at boot with command

    [root@mail ~]# systemctl enable memcached
    Created symlink from /etc/systemd/system/multi-user.target.wants/memcached.service to /usr/lib/systemd/system/memcached.service.
    [root@mail ~]# 

    To check if a service is enabled to start on boot, run

    systemctl list-unit-files | grep SERVICE_NAME_HERE

    Example

    [root@ok ~]# systemctl list-unit-files | grep httpd
    httpd.service                                 enabled 
    [root@ok ~]# 
  • systemctl

    Service files

    To list all services run

    systemctl -a
    

    List all enabled services

    systemctl list-unit-files | grep enabled
    

    See all running services

    systemctl | grep running
    

    See see dependency for a package, run

    systemctl list-dependencies --reverse PACKAGE_NAME
    

    systemctl list-dependencies

    Service file location

    service files are located in /usr/lib/systemd/system

    [root@web-0001 system]# pwd
    /usr/lib/systemd/system
    [root@web-0001 system]# ls -l | grep php
    -rw-r--r--  1 root root  507 Jul  6  2017 php56-php-fpm.service
    -rw-r--r--  1 root root  502 Jan  3 06:55 php72-php-fpm.service
    -rw-r--r--  1 root root  467 Jun  7  2017 php-fpm.service
    [root@web-0001 system]# 
    

    Systemd unit types

    systemctl -t help
    systemctl -t timer
    systemctl -t service