Systemd: Difference between revisions

From DWIKI
mNo edit summary
(24 intermediate revisions by the same user not shown)
Line 1: Line 1:


 
 


= Documentation =
= Documentation =
Line 15: Line 16:
*[[https://blog.darknedgy.net/technology/2020/05/02/0/index.html#tech-critique https://blog.darknedgy.net/technology/2020/05/02/0/index.html#tech-critique]  
*[[https://blog.darknedgy.net/technology/2020/05/02/0/index.html#tech-critique https://blog.darknedgy.net/technology/2020/05/02/0/index.html#tech-critique]  
*[https://mohsensy.github.io/sysadmin/2018/08/19/systemd-service-tutorial.html Systemd service tutorial]  
*[https://mohsensy.github.io/sysadmin/2018/08/19/systemd-service-tutorial.html Systemd service tutorial]  
 
*[https://www.freedesktop.org/wiki/Software/systemd/dbus/ https://www.freedesktop.org/wiki/Software/systemd/dbus/ Systemd and dbus]
([https://www.thegeekdiary.com/how-to-boot-into-rescue-mode-or-emergency-mode-through-systemd-in-centos-rhel-7-and-8/ Single user/emergency]
*[https://www.thegeekdiary.com/how-to-boot-into-rescue-mode-or-emergency-mode-through-systemd-in-centos-rhel-7-and-8/ Single user/emergency]


= Locations =
= Locations =
Line 28: Line 29:


= HOWTO =
= HOWTO =
==systemctl verbose==
SYSTEMD_LOG_LEVEL=debug systemctl start yourservice
==Services==
===List enabled services===
See https://www.baeldung.com/linux/systemctl-list-enabled-services
systemctl list-unit-files --state=enabled
===Edit systemd service file===
systemctl edit --full my.service


== Timers ==
== Timers ==
Line 33: Line 45:
*[https://opensource.com/article/20/7/systemd-timers https://opensource.com/article/20/7/systemd-timers]  
*[https://opensource.com/article/20/7/systemd-timers https://opensource.com/article/20/7/systemd-timers]  
*[https://wiki.archlinux.org/title/Systemd/Timers https://wiki.archlinux.org/title/Systemd/Timers]  
*[https://wiki.archlinux.org/title/Systemd/Timers https://wiki.archlinux.org/title/Systemd/Timers]  
 
*https://linuxhint.com/cron_systemd_timer/ also about random time
  man systemd.timer
  man systemd.timer


Line 45: Line 57:
  systemctl list-timers --all
  systemctl list-timers --all


=== Create timer ===
=== Enable timer ===


  systemctl enable fstrim.timer
  systemctl enable fstrim.timer
== Auto restart crashed services ==
systemctl edit elasticsearch.service
add:
[Service]
Restart=always
then
systemctl daemon-reload
systemctl restart elasticsearch.service
And to get an email when service gets restarted: https://dev.to/setevoy/linux-systemd-unit-files-edit-restart-on-failure-and-email-notifications-5h3k
==Logs==
===View systemd logs===
journalctl -u postfix


= FAQ =
= FAQ =
Line 55: Line 84:
  systemd-analyze blame
  systemd-analyze blame


 
 
== remove nameservers from /run/systemd/resolve/resolv.conf ==
Edit /etc/systemd/resolved.conf
Take out the DNS line and
systemctl restart systemd-resolved




== gateway4 has been deprecated ==
Using routes:
routes:
- to: default
  via: 192.168.1.1


== Systemd and DNS ==
== Systemd and DNS, list nameservers used ==


  resolvectl status
  resolvectl status
===Change nameserversers resolvectl uses===
====On Ubuntu====
Edit the netplan file
netplan generate
netplan apply
====Without editing netplan====
So does NOT update your netplan config!
resolvectl dns eth0 8.8.8.8 8.8.4.4
=== Failed to get global data: Unit dbus-org.freedesktop.resolve1.service not found. ===
Means systemd-resolved is not running


Restart:
Restart:
Line 67: Line 122:
  systemctl restart systemd-resolved
  systemctl restart systemd-resolved
        
        
     
=== Add nameserver ===
Sacrifice a chicken




=== Flush caches ===
=== Flush caches ===
# thing from the past
  systemd-resolve --flush-caches
  systemd-resolve --flush-caches
now use
resolvectl flush-caches


== All status ==
== All status ==
Line 110: Line 163:


  systemctl daemon-reexec
  systemctl daemon-reexec
==Status==
=== Active: inactive (dead) ===
parameter ActiveState would return inactive
SubState returns dead

Revision as of 13:01, 6 March 2025

 


Documentation

Locations

/etc/systemd
/usr/lib/systemd/
/lib/systemd

 


HOWTO

systemctl verbose

SYSTEMD_LOG_LEVEL=debug systemctl start yourservice

Services

List enabled services

See https://www.baeldung.com/linux/systemctl-list-enabled-services

systemctl list-unit-files --state=enabled

Edit systemd service file

systemctl edit --full my.service

Timers

man systemd.timer

List active timers

systemctl list-timers


List all timers

systemctl list-timers --all

Enable timer

systemctl enable fstrim.timer

Auto restart crashed services

systemctl edit elasticsearch.service 

add:

[Service]
Restart=always

then

systemctl daemon-reload
systemctl restart elasticsearch.service

And to get an email when service gets restarted: https://dev.to/setevoy/linux-systemd-unit-files-edit-restart-on-failure-and-email-notifications-5h3k


Logs

View systemd logs

journalctl -u postfix

FAQ

Analyze boot processes

systemd-analyze blame


remove nameservers from /run/systemd/resolve/resolv.conf

Edit /etc/systemd/resolved.conf Take out the DNS line and

systemctl restart systemd-resolved


gateway4 has been deprecated

Using routes:

routes:
- to: default
  via: 192.168.1.1

Systemd and DNS, list nameservers used

resolvectl status


Change nameserversers resolvectl uses

On Ubuntu

Edit the netplan file

netplan generate
netplan apply


Without editing netplan

So does NOT update your netplan config!

resolvectl dns eth0 8.8.8.8 8.8.4.4

Failed to get global data: Unit dbus-org.freedesktop.resolve1.service not found.

Means systemd-resolved is not running

Restart:

systemctl restart systemd-resolved
      


Flush caches

  1. thing from the past
systemd-resolve --flush-caches

now use

resolvectl flush-caches

All status

systemctl status -a

syslog spam

https://psyq123.wordpress.com/2015/06/29/if-you-get-a-lot-of-logspam-from-systemd-in-your-varlogsyslog-this-might-help/

list available services

systemctl list-unit-files

or

systemctl list-units

 

normal interface names

net.ifnames=0

Show failed services

systemctl --failed

 

systemd: Started Session

Change loglevel to notice in /etc/systemd/system.conf

systemctl daemon-reexec

Status

Active: inactive (dead)

parameter ActiveState would return inactive

SubState returns dead