Why do business owners prefer bicycles over ready-made solutions? Or about systemd, part 0

Happy New Year, Habr!







On the first of January, all normal people are engaged in procrastination, the destruction of the strategic reserve of Olivier and other things not related to physical or intellectual stress. So I was planning to join this New Year's army, but it didn't work!





Habr is to blame for everything!

…. ! , , — , . , !





  github. , ,  /usr/bin



. , , .









… ( sleep-)





©









, Domoticz . , watchdog cron.









… ( , )









5 , , Domoticz ,





©









?

systemd, «systemd », , , , , . systemd 100500 , , ( ;-), .





-

, , , - .





« »

(/etc/systemd/system/ssh-chat.service



):





[Unit]
Description=SSH Chat Service
After=network.target network-online.target

[Service]
#         
User=ssh-chat
Group=ssh-chat
Type=Simple
ExecStart=/usr/local/bin/ssh-chat --admin=/etc/ssh-chat/admins --bind=0.0.0.0:22 --log /var/log/ssh-chat.log --motd=/etc/ssh-chat/motd
#       .
# on-failure —       .
Restart=on-failure
#    ,  .
RestartSec=1
# Capablities  .    -  
#     (< 1000)
AmbientCapablities=CAP_NET_BIND_SERVICE

[Install]
WantedBy=multiuser.target
      
      



systemd-sysusers.service(/etc/sysusers.d/ssh-chat.conf



):





u ssh-chat - "SSH Chat user" /etc/ssh-chat
#  :
# u :  
# ssh-chat : username
# - :  UID[:GID]       UID/GID < 1000
# "SSH Chat user" : ,  "-",   .
# /etc/ssh-chat : Home Directory
#      -- login shell.   /usr/bin/nologin
      
      



:





sudo systemctl restart systemd-sysusers.service && sudo systemctl enable --now ssh-chat
      
      



« »

(/etc/systemd/system/domoticz.service



):





[Unit]
Description=Domoticz Daemon
After=network.target

[Service]
User=http
Group=http
#       
#  .  "+"     .
ExecStartPre=+/usr/bin/install -d -m 0700 -o http -g http /var/run/domoticz
ExecStart=/opt/domoticz/domoticz -www 8080 -pidfile /var/run/domoticz/domoticz.pid
PIDFile=/var/run/domoticz/domoticz.pid
WorkingDirectory=/opt/domoticz
#    ,     "",   5 .
RestartSec=5
Restart=on-failure

[Install]
WantedBy=multi-user.target
      
      



:





sudo systemctl enable --now domoticz
      
      



?

systemd, , - , . , , «»(transient) , and more, more... « » . :





man systemd.unit
man systemd.service
man systemd.exec
man systemctl
man sysusers.d
man systemd-sysusers
      
      



And a little secret for a snack. One of my favorite manas: man systemd.directives



- A guide to all the configuration directives you might encounter while learning about systemd.





Once again Happy New Year, Habr! And use the right tools!





PS: Added a link to the man on systemd.exec . Somehow I forgot a little about him.








All Articles