Pourquoi les propriétaires d'entreprise préfèrent-ils les vélos aux solutions toutes faites? Ou à propos de systemd, partie 0

Bonne année, Habr!







Le 1er janvier, toutes les personnes normales sont engagées dans la procrastination, la destruction de la réserve stratégique d'Olivier et d'autres choses non liées au stress physique ou intellectuel. J'avais donc l'intention de rejoindre l'armée du Nouvel An, mais ça n'a pas marché!





Habr est à blâmer pour tout!

…. ! , , — , . , !





  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
      
      



Et un petit secret pour une collation. Un de mes manas préférés: man systemd.directives



- Un guide de toutes les directives de configuration que vous pourriez rencontrer en découvrant systemd.





Encore une fois, bonne année, Habr! Et utilisez les bons outils!





PS: Ajout d'un lien vers l'homme sur systemd.exec . D'une certaine manière, j'ai oublié un peu de lui.








All Articles