แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒฃแƒ แƒ˜, แƒ˜แƒœแƒขแƒ”แƒ แƒแƒฅแƒขแƒ˜แƒฃแƒšแƒ˜ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒขแƒแƒ˜แƒ›แƒ”แƒ แƒ”แƒ‘แƒ˜

แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒฃแƒ แƒ˜, แƒ˜แƒœแƒขแƒ”แƒ แƒแƒฅแƒขแƒ˜แƒฃแƒšแƒ˜ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒขแƒแƒ˜แƒ›แƒ”แƒ แƒ”แƒ‘แƒ˜

แƒจแƒ”แƒกแƒแƒ•แƒแƒšแƒ˜

Linux-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒจแƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ˜แƒกแƒแƒก แƒฉแƒœแƒ“แƒ”แƒ‘แƒ แƒ˜แƒœแƒขแƒ”แƒ แƒแƒฅแƒขแƒ˜แƒฃแƒšแƒ˜ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒก แƒแƒ›แƒแƒชแƒแƒœแƒ, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ“แƒ”แƒ‘แƒ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒฉแƒแƒ แƒ—แƒ•แƒ˜แƒก แƒแƒœ แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ˜แƒกแƒแƒก. V system-แƒจแƒ˜ แƒ”แƒก แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒ˜แƒงแƒ, แƒ›แƒแƒ’แƒ แƒแƒ› systemd-แƒ˜แƒ— แƒ˜แƒก แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒก แƒ™แƒแƒ แƒ”แƒฅแƒขแƒ˜แƒ แƒ”แƒ‘แƒแƒก. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒแƒก แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒฐแƒฅแƒแƒœแƒ“แƒ”แƒก แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒขแƒแƒ˜แƒ›แƒ”แƒ แƒ˜.

แƒ แƒแƒขแƒแƒ› แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒ›แƒ˜แƒ–แƒœแƒ”แƒ‘แƒ˜?

แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒฌแƒ”แƒ แƒ”แƒœ, แƒ แƒแƒ› แƒกแƒแƒ›แƒ˜แƒ–แƒœแƒ” แƒ”แƒ›แƒกแƒแƒฎแƒฃแƒ แƒ”แƒ‘แƒ V-init แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒœแƒ˜แƒก แƒแƒœแƒแƒšแƒแƒ’แƒก. แƒคแƒฃแƒœแƒ“แƒแƒ›แƒ”แƒœแƒขแƒฃแƒ แƒแƒ“ แƒแƒ  แƒ•แƒ”แƒ—แƒแƒœแƒฎแƒ›แƒ”แƒ‘แƒ˜. แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒฃแƒคแƒ แƒ แƒ›แƒ”แƒขแƒ˜แƒ แƒ“แƒ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ“แƒแƒงแƒแƒ— แƒžแƒแƒ™แƒ”แƒขแƒ”แƒ‘แƒ˜ แƒฏแƒ’แƒฃแƒคแƒ”แƒ‘แƒแƒ“ แƒ“แƒ, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ’แƒแƒฃแƒจแƒ•แƒแƒ— แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ”แƒ‘แƒ˜แƒก แƒฏแƒ’แƒฃแƒคแƒ˜ แƒ”แƒ แƒ—แƒ˜ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒ— แƒ“แƒ แƒจแƒ”แƒแƒกแƒ แƒฃแƒšแƒแƒ— แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ”แƒ‘แƒ˜. แƒฃแƒคแƒ แƒ แƒ›แƒ”แƒขแƒ˜แƒช, แƒ›แƒแƒ— แƒแƒ  แƒแƒฅแƒ•แƒ— แƒ˜แƒ”แƒ แƒแƒ แƒฅแƒ˜แƒ, แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜.

แƒกแƒแƒ›แƒ˜แƒ–แƒœแƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒฉแƒแƒ แƒ—แƒฃแƒšแƒ˜แƒ (แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒ) แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒœแƒขแƒ”แƒ แƒแƒฅแƒขแƒ˜แƒฃแƒšแƒ˜ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜แƒ—

แƒ—แƒแƒ•แƒแƒ“ แƒกแƒแƒ›แƒ˜แƒ–แƒœแƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ:

cat installer.target
[Unit]
Description=My installer
Requires=multi-user.target 
Conflicts=rescue.service rescue.target
After=multi-user.target rescue.service rescue.target 
AllowIsolate=yes
Wants=installer.service

แƒ”แƒก แƒกแƒแƒ›แƒ˜แƒ–แƒœแƒ” แƒ“แƒแƒ˜แƒฌแƒงแƒ”แƒ‘แƒ, แƒ แƒแƒ“แƒ”แƒกแƒแƒช multi-user.target แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ“แƒ แƒ“แƒแƒฃแƒ แƒ”แƒ™แƒแƒ•แƒก installer.service-แƒก. แƒ—แƒฃแƒ›แƒชแƒ, แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒ“แƒ”แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒแƒกแƒ”แƒ—แƒ˜ แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜.

cat installer.service
[Unit]
# ะพะฟะธัะฐะฝะธะต
Description=installer interactive dialog

[Service]
# ะ—ะฐะฟัƒัั‚ะธั‚ัŒ ะพะดะธะฝ ั€ะฐะท, ะบะพะณะดะฐ ะพัั‚ะฐะปัŒะฝะพะต ะฑัƒะดะตั‚ ะทะฐะฟัƒั‰ะตะฝะฝะพ
Type=idle
# ะšะพะผะฐะฝะดะฐ ะทะฐะฟัƒัะบะฐ - ะฒั‹ะทะพะฒ ัะบั€ะธะฟั‚ะฐ
ExecStart=/usr/bin/installer.sh
# ะ˜ะฝั‚ะตั€ะฐะบั‚ะธะฒะฝะพะต ะฒะทะฐะธะผะพะดะตะนัั‚ะฒะธะต ั ะฟะพะปัŒะทะพะฒะฐั‚ะตะปะตะผ ั‡ะตั€ะตะท tty3
StandardInput=tty
TTYPath=/dev/tty3
TTYReset=yes
TTYVHangup=yes

[Install]
WantedBy=installer.target

แƒ“แƒ แƒ‘แƒแƒšแƒแƒก, แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜:

#!/bin/bash
# ะŸะตั€ะตั…ะพะดะธะผ ะฒ tty3
chvt 3
echo "Install, y/n ?"
read user_answer

แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜แƒ แƒแƒ˜แƒ แƒฉแƒ˜แƒแƒ— final.target - แƒ›แƒ˜แƒ–แƒแƒœแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ แƒฃแƒœแƒ“แƒ แƒ›แƒ˜แƒ•แƒ˜แƒ“แƒ”แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒกแƒแƒก. แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒจแƒ˜, systemd แƒ’แƒแƒ˜แƒ•แƒšแƒ˜แƒก แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ”แƒ‘แƒก แƒ“แƒ แƒ’แƒแƒฃแƒจแƒ•แƒ”แƒ‘แƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒก, แƒ แƒแƒช แƒ›แƒแƒก แƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ.
final.target-แƒ˜แƒก แƒแƒ แƒฉแƒ”แƒ•แƒ˜แƒก แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ’แƒ–แƒ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก, แƒแƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒ” loader แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜.

แƒกแƒแƒ‘แƒแƒšแƒแƒ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ แƒแƒกแƒ” แƒ’แƒแƒ›แƒแƒ˜แƒงแƒฃแƒ แƒ”แƒ‘แƒ:

  1. แƒฉแƒแƒ›แƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ”แƒšแƒ˜ แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ
  2. แƒฉแƒแƒ›แƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ”แƒšแƒ˜ แƒ˜แƒฌแƒงแƒ”แƒ‘แƒก firmware-แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒแƒก final.target แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜แƒก แƒ’แƒแƒ“แƒแƒชแƒ”แƒ›แƒ˜แƒ—
  3. Systemd แƒ˜แƒฌแƒงแƒ”แƒ‘แƒก แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒแƒก. แƒ—แƒแƒœแƒ›แƒ˜แƒ›แƒ“แƒ”แƒ•แƒ แƒฃแƒšแƒแƒ“ แƒ›แƒ˜แƒ“แƒ˜แƒก installer.target แƒแƒœ work.target-แƒ“แƒแƒœ basic.target แƒ›แƒแƒ—แƒ˜ แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ”แƒจแƒ•แƒ”แƒแƒ‘แƒ˜แƒ— (แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, multi-user.target). แƒ”แƒก แƒฃแƒ™แƒแƒœแƒแƒกแƒ™แƒœแƒ”แƒšแƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒก แƒกแƒแƒกแƒฃแƒ แƒ•แƒ”แƒš แƒ แƒ”แƒŸแƒ˜แƒ›แƒจแƒ˜ แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒก

แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒฃแƒšแƒ˜ แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒ˜แƒก แƒ›แƒแƒ›แƒ–แƒแƒ“แƒ”แƒ‘แƒ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก

แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒฃแƒšแƒ˜ แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒกแƒแƒก, แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก แƒฉแƒœแƒ“แƒ”แƒ‘แƒ แƒแƒ›แƒแƒชแƒแƒœแƒ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒ˜แƒก แƒแƒฆแƒ“แƒ’แƒ”แƒœแƒ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒกแƒแƒก แƒ“แƒ แƒ›แƒ˜แƒกแƒ˜ แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ˜แƒกแƒแƒก. แƒกแƒแƒฎแƒ”แƒšแƒ›แƒฌแƒ˜แƒคแƒ แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒก, แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒก แƒแƒ›แƒแƒœแƒแƒฌแƒ”แƒ แƒ”แƒ‘แƒก, แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒก แƒ“แƒ แƒ.แƒจ.

Systemd แƒแƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒ”แƒ‘แƒก แƒ˜แƒ›แƒแƒ•แƒ” แƒกแƒแƒ›แƒ˜แƒ–แƒœแƒ”แƒจแƒ˜ แƒžแƒแƒ แƒแƒšแƒ”แƒšแƒฃแƒ แƒแƒ“. แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒ— แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒ—แƒแƒœแƒ›แƒ˜แƒ›แƒ“แƒ”แƒ•แƒ แƒแƒ‘แƒ.

แƒ แƒแƒ’แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒ”แƒก แƒฉแƒ”แƒ›แƒก แƒžแƒ แƒแƒ”แƒฅแƒขแƒจแƒ˜ ( https://habr.com/ru/post/477008/ https://github.com/skif-web/monitor)

  1. แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ
  2. แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ settings_restore.service แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒก settings.txt แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒแƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ’แƒแƒœแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒแƒจแƒ˜. แƒ—แƒฃ แƒ˜แƒก แƒ˜แƒฅ แƒแƒ  แƒแƒ แƒ˜แƒก, แƒ›แƒแƒจแƒ˜แƒœ แƒ›แƒ˜แƒก แƒแƒ“แƒ’แƒ˜แƒšแƒแƒก แƒ›แƒแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒกแƒแƒชแƒœแƒแƒ‘แƒแƒ แƒ แƒคแƒแƒ˜แƒšแƒ˜. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒแƒฆแƒ“แƒ’แƒ”แƒ‘แƒ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜:
    • แƒแƒ“แƒ›แƒ˜แƒœแƒ˜แƒกแƒขแƒ แƒแƒขแƒแƒ แƒ˜แƒก แƒžแƒแƒ แƒแƒšแƒ˜
    • แƒ›แƒแƒกแƒžแƒ˜แƒœแƒซแƒšแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜,
    • แƒ“แƒ แƒแƒ˜แƒก แƒกแƒแƒ แƒขแƒงแƒ”แƒšแƒ˜
    • แƒšแƒแƒ™แƒแƒšแƒ˜
    • แƒแƒ“แƒ’แƒ”แƒœแƒก, แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ—แƒฃ แƒแƒ แƒ แƒงแƒ•แƒ”แƒšแƒ แƒ›แƒ”แƒ“แƒ˜แƒ. แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒแƒ“, แƒกแƒฃแƒ แƒแƒ—แƒ˜แƒก แƒ–แƒแƒ›แƒ แƒ›แƒชแƒ˜แƒ แƒ”แƒ - แƒ›แƒ”แƒ“แƒ˜แƒแƒจแƒ˜ แƒ™แƒแƒžแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒฉแƒแƒฌแƒ”แƒ แƒ˜แƒก แƒ’แƒแƒกแƒแƒแƒ“แƒ•แƒ˜แƒšแƒ”แƒ‘แƒšแƒแƒ“. แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒกแƒแƒก แƒ˜แƒก แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒก, แƒแƒ แƒ˜แƒก แƒ—แƒฃ แƒแƒ แƒ แƒ’แƒแƒ›แƒแƒฃแƒงแƒ”แƒœแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒแƒ“แƒ’แƒ˜แƒšแƒ˜. แƒ—แƒฃ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก, แƒ“แƒ˜แƒกแƒ™แƒ˜ แƒ’แƒแƒ“แƒแƒœแƒแƒฌแƒ˜แƒšแƒ“แƒ”แƒ‘แƒ.
    • แƒแƒžแƒแƒ แƒแƒขแƒ˜แƒก ID-แƒ˜แƒก แƒ’แƒ”แƒœแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒ MAC แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜แƒ“แƒแƒœ. แƒ”แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜แƒ DHCP-แƒ˜แƒ— แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜แƒก แƒ›แƒ˜แƒกแƒแƒฆแƒ”แƒ‘แƒแƒ“
    • แฒฅแƒกแƒ”แƒšแƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜
    • แƒ–แƒฆแƒฃแƒ“แƒแƒ•แƒก แƒ›แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ–แƒแƒ›แƒแƒก
    • แƒ’แƒแƒ แƒ” แƒ“แƒ˜แƒกแƒ™แƒ˜ แƒ›แƒ–แƒแƒ“แƒ“แƒ”แƒ‘แƒ แƒกแƒแƒ›แƒฃแƒจแƒแƒแƒ“ (แƒ—แƒฃ แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒ˜ แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜ แƒฉแƒแƒ แƒ—แƒฃแƒšแƒ˜แƒ แƒ“แƒ แƒ“แƒ˜แƒกแƒ™แƒ˜ แƒแƒฎแƒแƒšแƒ˜แƒ)
  3. แƒ“แƒแƒ˜แƒฌแƒงแƒ”แƒ— postgresq
  4. แƒแƒฆแƒ“แƒ’แƒ”แƒœแƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜ แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ. แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒ—แƒแƒ•แƒแƒ“ zabbix-แƒ˜แƒกแƒ แƒ“แƒ แƒ›แƒ˜แƒกแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒก แƒ›แƒแƒกแƒแƒ›แƒ–แƒแƒ“แƒ”แƒ‘แƒšแƒแƒ“:
    • แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒก แƒแƒ แƒ˜แƒก แƒ—แƒฃ แƒแƒ แƒ แƒฃแƒ™แƒ•แƒ” zabbix แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ. แƒ—แƒฃ แƒแƒ แƒ, แƒ˜แƒก แƒ˜แƒฅแƒ›แƒœแƒ”แƒ‘แƒ แƒ˜แƒœแƒ˜แƒชแƒ˜แƒแƒšแƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒœแƒแƒ’แƒแƒ•แƒกแƒแƒงแƒ แƒ”แƒšแƒ”แƒ‘แƒ˜แƒ“แƒแƒœ (แƒ›แƒแƒงแƒ•แƒ”แƒ‘แƒ zabbix)
    • แƒ˜แƒฅแƒ›แƒœแƒ”แƒ‘แƒ แƒ“แƒ แƒแƒ˜แƒก แƒ–แƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ (แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒ•แƒ”แƒ‘ แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒจแƒ˜ แƒ›แƒแƒ—แƒ˜ แƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก)
    • แƒœแƒแƒžแƒแƒ•แƒœแƒ˜แƒ แƒแƒ›แƒŸแƒแƒ›แƒ˜แƒœแƒ“แƒ”แƒšแƒ˜ IP, แƒ˜แƒก แƒœแƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ˜แƒ แƒ’แƒแƒ›แƒแƒจแƒ•แƒ”แƒ‘แƒแƒจแƒ˜ (แƒ›แƒแƒฌแƒ•แƒ”แƒ•แƒ แƒ™แƒแƒœแƒกแƒแƒšแƒจแƒ˜ แƒจแƒ”แƒกแƒแƒกแƒ•แƒšแƒ”แƒšแƒแƒ“)
  5. แƒ›แƒแƒฌแƒ•แƒ”แƒ•แƒ แƒ˜แƒชแƒ•แƒšแƒ”แƒ‘แƒ - แƒฉแƒœแƒ“แƒ”แƒ‘แƒ แƒคแƒ แƒแƒ–แƒ Ready to work
  6. firmware แƒ›แƒ–แƒแƒ“ แƒแƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒกแƒแƒงแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ“

แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜แƒ, แƒกแƒฌแƒแƒ แƒ”แƒ“ แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒแƒ“แƒ’แƒ”แƒœแƒ”แƒœ แƒ›แƒแƒ—แƒ˜ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒ—แƒแƒœแƒ›แƒ˜แƒ›แƒ“แƒ”แƒ•แƒ แƒแƒ‘แƒแƒก

[Unit]
Description=restore system settings
Before=network.service prepare.service postgresql.service systemd-networkd.service systemd-resolved.service

[Service]
Type=oneshot
ExecStart=/usr/bin/settings_restore.sh

[Install]
WantedBy=multi-user.target

แƒ แƒแƒ’แƒแƒ แƒช แƒฎแƒ”แƒ“แƒแƒ•, แƒ›แƒ” แƒ“แƒแƒ•แƒแƒงแƒ”แƒœแƒ” แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜, แƒ แƒแƒ› แƒฏแƒ”แƒ  แƒฉแƒ”แƒ›แƒ˜ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ“แƒ”แƒก แƒ“แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒแƒ•แƒ แƒฅแƒกแƒ”แƒšแƒ˜ แƒ“แƒ แƒ“แƒแƒ˜แƒฌแƒงแƒ”แƒ‘แƒ DBMS.

แƒ“แƒ แƒ›แƒ”แƒแƒ แƒ” แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜ (zabbix แƒ›แƒแƒ›แƒ–แƒแƒ“แƒ”แƒ‘แƒ)

#!/bin/sh
[Unit]
Description=monitor prepare system
After=postgresql.service settings_restore.service
Before=zabbix-server.service zabbix-agent.service

[Service]
Type=oneshot
ExecStart=/usr/bin/prepare.sh

[Install]
WantedBy=multi-user.target

แƒแƒฅ แƒชแƒแƒขแƒ แƒฃแƒคแƒ แƒ แƒ แƒ—แƒฃแƒšแƒ˜แƒ. แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ แƒแƒกแƒ”แƒ•แƒ” แƒแƒ แƒ˜แƒก multi-user.target-แƒจแƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› postgresql DBMS-แƒ˜แƒก แƒ“แƒ แƒฉแƒ”แƒ›แƒ˜ setting_restore-แƒ˜แƒก แƒ“แƒแƒฌแƒงแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’. แƒแƒฆแƒแƒœแƒ“ zabbix แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒฌแƒงแƒ”แƒ‘แƒแƒ›แƒ“แƒ”.

แƒขแƒแƒ˜แƒ›แƒ”แƒ แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜ แƒšแƒแƒ’แƒแƒ แƒแƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก

Systemd-แƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒจแƒ”แƒชแƒ•แƒแƒšแƒแƒก CRON. แƒกแƒ”แƒ แƒ˜แƒแƒ–แƒฃแƒšแƒแƒ“. แƒฃแƒคแƒ แƒ แƒ›แƒ”แƒขแƒ˜แƒช, แƒกแƒ˜แƒ–แƒฃแƒกแƒขแƒ” แƒแƒ แƒ˜แƒก แƒแƒ แƒ แƒฌแƒฃแƒ—แƒแƒ›แƒ“แƒ”, แƒแƒ แƒแƒ›แƒ”แƒ“ แƒฌแƒแƒ›แƒแƒ›แƒ“แƒ” (แƒ แƒ แƒ—แƒฃ แƒกแƒแƒญแƒ˜แƒ แƒแƒ) แƒแƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒจแƒ”แƒฅแƒ›แƒœแƒแƒ— แƒ›แƒแƒœแƒแƒขแƒแƒœแƒฃแƒ แƒ˜ แƒขแƒแƒ˜แƒ›แƒ”แƒ แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒ”แƒฌแƒแƒ“แƒ”แƒ‘แƒ แƒ—แƒแƒ แƒ˜แƒฆแƒ˜แƒก แƒ“แƒ แƒ.
แƒ”แƒก แƒ˜แƒงแƒ แƒ”แƒ แƒ—แƒคแƒ”แƒ แƒแƒ•แƒแƒœแƒ˜ แƒขแƒแƒ˜แƒ›แƒ”แƒ แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ˜แƒ—แƒ•แƒšแƒ˜แƒก แƒ“แƒ แƒแƒก แƒฉแƒ”แƒ›แƒก แƒ›แƒ˜แƒ”แƒ  แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒšแƒ˜ แƒแƒžแƒแƒ แƒแƒขแƒ˜แƒก แƒ“แƒแƒฌแƒงแƒ”แƒ‘แƒ˜แƒ“แƒแƒœ.
แƒแƒ›แƒแƒก แƒ“แƒแƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ 2 แƒคแƒแƒ˜แƒšแƒ˜
logrotateTimer.service - แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜แƒก แƒ แƒ”แƒแƒšแƒฃแƒ แƒ˜ แƒแƒฆแƒฌแƒ”แƒ แƒ:

[Unit]
Description=run logrotate

[Service]
ExecStart=logrotate /etc/logrotate.conf
TimeoutSec=300

แƒ”แƒก แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜แƒ - แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ.
แƒ›แƒ”แƒแƒ แƒ” แƒคแƒแƒ˜แƒšแƒ˜ logrotateTimer.timer แƒแƒ แƒ˜แƒก แƒกแƒแƒ“แƒแƒช แƒขแƒแƒ˜แƒ›แƒ”แƒ แƒ”แƒ‘แƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ”แƒœ:

[Unit]
Description=Run logrotate

[Timer]
OnBootSec=15min
OnUnitActiveSec=15min

[Install]
WantedBy=timers.target

แƒ แƒ แƒแƒ แƒ˜แƒก แƒแƒฅ:

  • แƒขแƒแƒ˜แƒ›แƒ”แƒ แƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ
  • แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ“แƒแƒฌแƒงแƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒ, แƒ“แƒแƒฌแƒงแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒฉแƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒ“แƒแƒœ
  • แƒจแƒ”แƒ›แƒ“แƒ’แƒแƒ›แƒ˜ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒžแƒ”แƒ แƒ˜แƒแƒ“แƒ˜
  • แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ แƒขแƒแƒ˜แƒ›แƒ”แƒ แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ–แƒ”. แƒคแƒแƒฅแƒขแƒแƒ‘แƒ แƒ˜แƒ•แƒแƒ“, แƒ”แƒก แƒแƒ แƒ˜แƒก แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฅแƒ›แƒœแƒ˜แƒก แƒขแƒแƒ˜แƒ›แƒ”แƒ แƒก

แƒ˜แƒœแƒขแƒ”แƒ แƒแƒฅแƒขแƒ˜แƒฃแƒšแƒ˜ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜ แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ˜แƒกแƒแƒก แƒ“แƒ แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ˜แƒก แƒ›แƒ˜แƒ–แƒแƒœแƒ˜

แƒกแƒฎแƒ•แƒ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒแƒจแƒ˜ แƒ›แƒ” แƒ›แƒแƒ›แƒ˜แƒฌแƒ˜แƒ แƒแƒžแƒแƒ แƒแƒขแƒ˜แƒก แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ˜แƒก แƒฃแƒคแƒ แƒ แƒ แƒ—แƒฃแƒšแƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ˜แƒก แƒ’แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ - แƒฉแƒ”แƒ›แƒ˜ แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒกแƒแƒ›แƒ˜แƒ–แƒœแƒ˜แƒก แƒ›แƒ”แƒจแƒ•แƒ”แƒแƒ‘แƒ˜แƒ—, แƒ แƒแƒ—แƒ แƒจแƒ”แƒ›แƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒœแƒ แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ. แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ• แƒ แƒ”แƒ™แƒแƒ›แƒ”แƒœแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ Oneshot แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ RemainAfterExit แƒแƒคแƒชแƒ˜แƒ˜แƒ—, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ”แƒก แƒฎแƒ”แƒšแƒก แƒ’แƒ˜แƒจแƒšแƒ˜แƒ— แƒ˜แƒœแƒขแƒ”แƒ แƒแƒฅแƒขแƒ˜แƒฃแƒšแƒ˜ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒแƒจแƒ˜.

แƒ›แƒแƒ’แƒ แƒแƒ› แƒคแƒแƒฅแƒขแƒ˜แƒ, แƒ แƒแƒ› ExecOnStop แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜แƒก แƒ›แƒ˜แƒ”แƒ  แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ TTY-แƒก แƒ’แƒแƒ แƒ”แƒ—! แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜แƒ - แƒฉแƒแƒกแƒ•แƒ˜แƒ— tty แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ แƒ“แƒ แƒจแƒ”แƒ˜แƒœแƒแƒฎแƒ”แƒ— แƒ›แƒ˜แƒกแƒ˜ แƒ’แƒแƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒ˜.

แƒแƒ›แƒ˜แƒขแƒแƒ›, แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ แƒ’แƒแƒœแƒ•แƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ” แƒฉแƒ”แƒ›แƒ˜ แƒ›แƒ˜แƒ–แƒœแƒ˜แƒก แƒ›แƒ”แƒจแƒ•แƒ”แƒแƒ‘แƒ˜แƒ—. แƒ›แƒ” แƒแƒ  แƒ•แƒแƒ›แƒขแƒ™แƒ˜แƒชแƒ”แƒ‘, แƒ แƒแƒ› 100% แƒ›แƒแƒ แƒ—แƒแƒšแƒ˜ แƒ•แƒแƒ , แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก!
แƒ แƒแƒ’แƒแƒ  แƒ’แƒแƒ™แƒ”แƒ—แƒ“แƒ แƒ”แƒก (แƒ–แƒแƒ’แƒแƒ“แƒแƒ“):
แƒ›แƒ” แƒจแƒ”แƒ•แƒฅแƒ›แƒ”แƒœแƒ˜ แƒกแƒแƒ›แƒ˜แƒ–แƒœแƒ” my_shutdown.target, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ แƒแƒ•แƒ˜แƒกแƒ–แƒ” แƒแƒ  แƒ˜แƒงแƒ แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜:
my_shutdown.แƒกแƒแƒ›แƒ˜แƒ–แƒœแƒ”

[Unit]
Description=my shutdown
AllowIsolate=yes
Wants=my_shutdown.service 

แƒแƒ› แƒกแƒแƒ›แƒ˜แƒ–แƒœแƒ”แƒ–แƒ” แƒ’แƒแƒ“แƒแƒกแƒ•แƒšแƒ˜แƒกแƒแƒก (systemctl isolate my_shutdwn.target-แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ—), แƒ›แƒแƒœ แƒ’แƒแƒฃแƒจแƒ•แƒ my_shutdown.service แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜, แƒ แƒแƒ›แƒšแƒ˜แƒก แƒแƒ›แƒแƒชแƒแƒœแƒ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜แƒ - แƒจแƒ”แƒแƒกแƒ แƒฃแƒšแƒแƒก my_shutdown.sh แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜:

[Unit]
Description=MY shutdown

[Service]
Type=oneshot
ExecStart=/usr/bin/my_shutdown.sh
StandardInput=tty
TTYPath=/dev/tty3
TTYReset=yes
TTYVHangup=yes

WantedBy=my_shutdown.target

  • แƒแƒ› แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜แƒก แƒจแƒ˜แƒ’แƒœแƒ˜แƒ— แƒ•แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘ แƒกแƒแƒญแƒ˜แƒ แƒ แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ”แƒ‘แƒก. แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ“แƒแƒแƒ›แƒแƒขแƒแƒ— แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜ แƒ›แƒ˜แƒ–แƒแƒœแƒจแƒ˜ แƒ›แƒแƒฅแƒœแƒ˜แƒšแƒแƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒ›แƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒฃแƒšแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก:

แƒฉแƒ”แƒ›แƒ˜_แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ.แƒจ

#!/bin/bash --login
if [ -f /tmp/reboot ];then
    command="systemctl reboot"
elif [ -f /tmp/shutdown ]; then
    command="systemctl poweroff"
fi
#ะ’ะพั‚ ะทะดะตััŒ ะฝัƒะถะฝั‹ะต ะบะพะผะฐะฝะดั‹
#ะะฐะฟั€ะธะผะตั€, cp /home/user/data.txt /storage/user/
    $command

แฒจแƒ”แƒœแƒ˜แƒจแƒ•แƒœแƒ. /tmp/reboot แƒ“แƒ /tmp/shutdown แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—. แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒ  แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ“แƒแƒ แƒ”แƒ™แƒแƒ— แƒกแƒแƒ›แƒ˜แƒ–แƒœแƒ” แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒ—. แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜.

แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒ” แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘ แƒกแƒแƒ›แƒ˜แƒ–แƒœแƒ”แƒก, แƒ แƒแƒ› แƒ›แƒฅแƒแƒœแƒ“แƒ”แƒก แƒ›แƒแƒฅแƒœแƒ˜แƒšแƒแƒ‘แƒ แƒกแƒแƒ›แƒฃแƒจแƒแƒแƒจแƒ˜ แƒ“แƒ แƒ’แƒแƒ แƒแƒœแƒขแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ—แƒแƒœแƒ›แƒ˜แƒ›แƒ“แƒ”แƒ•แƒ แƒแƒ‘แƒ.

แƒ—แƒฃแƒ›แƒชแƒ, แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ แƒ›แƒแƒ’แƒ•แƒ˜แƒแƒœแƒ”แƒ‘แƒ˜แƒ— แƒ›แƒแƒฎแƒ“แƒ. แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒแƒžแƒแƒ แƒแƒขแƒ˜แƒก แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ/แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ. แƒ“แƒ แƒแƒ แƒ˜แƒก 2 แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜:

  • แƒฉแƒแƒแƒœแƒแƒชแƒ•แƒšแƒ”แƒ— แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ, แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ แƒ“แƒ แƒกแƒฎแƒ•แƒ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜ (แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒฏแƒ”แƒ  แƒ™แƒ˜แƒ“แƒ”แƒ• systemctl-แƒ˜แƒก แƒกแƒ˜แƒ›แƒ‘แƒแƒšแƒแƒ) แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜แƒ—. แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜แƒก แƒจแƒ˜แƒ’แƒœแƒ˜แƒ— แƒ’แƒแƒ“แƒแƒ“แƒ˜แƒ— my_shutdown.target-แƒ–แƒ”. แƒ“แƒ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ”แƒ‘แƒ˜ แƒกแƒแƒ›แƒ˜แƒ–แƒœแƒ˜แƒก แƒจแƒ˜แƒ’แƒœแƒ˜แƒ—, แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ  แƒฃแƒฌแƒแƒ“แƒ”แƒ‘แƒก systemctl-แƒก, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, systemctl แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒแƒก
  • แƒฃแƒคแƒ แƒ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ  แƒ›แƒแƒ›แƒฌแƒแƒœแƒก. แƒงแƒ•แƒ”แƒšแƒ แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒจแƒ˜ แƒœแƒฃ แƒ’แƒแƒ›แƒแƒ˜แƒซแƒแƒฎแƒ”แƒ‘แƒ— shutdown/reboot/other, แƒแƒ แƒแƒ›แƒ”แƒ“ แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ  แƒ“แƒแƒ แƒ”แƒ™แƒ”แƒ— แƒกแƒแƒ›แƒ˜แƒ–แƒœแƒ” แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒกctl isolate my_shutdown.target

แƒ›แƒ” แƒแƒ•แƒ˜แƒ แƒฉแƒ˜แƒ” แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜. systemd-แƒจแƒ˜ แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ (แƒ แƒแƒ’แƒแƒ แƒช poweroff) แƒแƒ แƒ˜แƒก symlinks systemd-แƒ—แƒแƒœ.

ls -l /sbin/poweroff 
lrwxrwxrwx 1 root root 14 ัะตะฝ 30 18:23 /sbin/poweroff -> /bin/systemctl

แƒแƒ›แƒ˜แƒขแƒแƒ›, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒจแƒ”แƒชแƒ•แƒแƒšแƒแƒ— แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ”แƒ‘แƒ˜แƒ—:
แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ”แƒ—

#!/bin/sh
    touch /tmp/reboot
    sudo systemctl isolate my_shutdown.target
fi

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ