なぜ事業主は既製のソリューションよりも自転車を好むのですか?またはsystemdについて、パート0

明けましておめでとう、Habr!







1月1日、すべての普通の人々は、先延ばし、オリヴィエの戦略的ストックの破壊、および身体的または知的ストレスに関係のないその他のことに従事します。それで、今年の新年の軍隊に加わることを計画していましたが、うまくいきませんでした!





Habrはすべての責任です!

…. ! , , — , . , !





  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
      
      



そして、軽食のちょっとした秘密。私のお気に入りのマナの1つ:-systemdman systemd.directives



について学習しているときに遭遇する可能性のあるすべての構成ディレクティブのガイド。





もう一度明けましておめでとう、Habr!そして、適切なツールを使用してください!





PS:systemd.execにmanへのリンクを追加しましたどういうわけか私は彼のことを少し忘れました。








All Articles