āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽāĻĄ, āĻ‡āĻ¨ā§āĻŸāĻžāĻ°ā§‡āĻ•ā§āĻŸāĻŋāĻ­ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻāĻŦāĻ‚ āĻŸāĻžāĻ‡āĻŽāĻžāĻ°

āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽāĻĄ, āĻ‡āĻ¨ā§āĻŸāĻžāĻ°ā§‡āĻ•ā§āĻŸāĻŋāĻ­ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻāĻŦāĻ‚ āĻŸāĻžāĻ‡āĻŽāĻžāĻ°

āĻ­ā§‚āĻŽāĻŋāĻ•āĻž

āĻ˛āĻŋāĻ¨āĻžāĻ•ā§āĻ¸ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻ‡āĻ¨ā§āĻŸāĻžāĻ°ā§‡āĻ•ā§āĻŸāĻŋāĻ­ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻžāĻ° āĻ•āĻžāĻœ āĻ¯āĻž āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻšāĻžāĻ˛ā§ āĻŦāĻž āĻŦāĻ¨ā§āĻ§ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ V āĻ¤ā§‡ āĻāĻŸāĻŋ āĻ¸āĻšāĻœ āĻ›āĻŋāĻ˛, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ 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 āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻšāĻ¨ āĻ•āĻ°āĻžāĻ° āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻ‰āĻĒāĻžāĻ¯āĻŧ āĻ†āĻ›ā§‡, āĻ†āĻŽāĻŋ āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻ˛ā§‹āĻĄāĻžāĻ° āĻ…āĻĒāĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡āĻ›āĻŋāĨ¤

āĻšā§‚āĻĄāĻŧāĻžāĻ¨ā§āĻ¤ āĻ˛āĻžā§āĻš āĻāĻ‡ āĻŽāĻ¤ āĻĻā§‡āĻ–āĻžāĻ¯āĻŧ:

  1. āĻŦā§āĻŸāĻ˛ā§‹āĻĄāĻžāĻ° āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧ
  2. āĻŦā§āĻŸāĻ˛ā§‹āĻĄāĻžāĻ° final.target āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ° āĻ…āĻ¤āĻŋāĻ•ā§āĻ°āĻŽ āĻ•āĻ°ā§‡ āĻĢāĻžāĻ°ā§āĻŽāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻž āĻļā§āĻ°ā§ āĻ•āĻ°ā§‡
  3. āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽāĻĄ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻļā§āĻ°ā§ āĻ•āĻ°āĻ¤ā§‡ āĻļā§āĻ°ā§ āĻ•āĻ°ā§‡āĨ¤ āĻ•ā§āĻ°āĻŽāĻžāĻ¨ā§āĻ¸āĻžāĻ°ā§‡ āĻ¤āĻžāĻĻā§‡āĻ° āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¤āĻž (āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, multi-user.target) āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ basic.target āĻĨā§‡āĻ•ā§‡ installer.target āĻŦāĻž work.target-āĻ āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻĒāĻ°ā§‡āĻ°āĻŸāĻŋ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽāĻŸāĻŋāĻ•ā§‡ āĻĒāĻ›āĻ¨ā§āĻĻāĻ¸āĻ‡ āĻŽā§‹āĻĄā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻ¤ā§‡ āĻ†āĻ¨ā§‡

āĻ˛āĻžā§āĻšā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĢāĻžāĻ°ā§āĻŽāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡

āĻĢāĻžāĻ°ā§āĻŽāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻ•āĻžāĻœāĻŸāĻŋ āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻļā§āĻ°ā§āĻ¤ā§‡ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻ…āĻŦāĻ¸ā§āĻĨāĻž āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ° āĻ•āĻ°āĻž āĻāĻŦāĻ‚ āĻŦāĻ¨ā§āĻ§ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻŸāĻŋ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ¸ā§āĻŸā§‡āĻŸ āĻŽāĻžāĻ¨ā§‡ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĢāĻžāĻ‡āĻ˛, āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻĄāĻžāĻŽā§āĻĒ, āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĢā§‡āĻ¸ āĻ¸ā§‡āĻŸāĻŋāĻ‚āĻ¸ āĻ‡āĻ¤ā§āĻ¯āĻžāĻĻāĻŋāĨ¤

Systemd āĻāĻ•āĻ‡ āĻŸāĻžāĻ°ā§āĻ—ā§‡āĻŸā§‡ āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛āĻ­āĻžāĻŦā§‡ āĻĒā§āĻ°āĻ¸ā§‡āĻ¸ āĻšāĻžāĻ˛āĻžāĻ¯āĻŧāĨ¤ āĻāĻŽāĻ¨ āĻ•āĻŋāĻ›ā§ āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¤āĻž āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¯āĻž āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸā§‡āĻ° āĻ¸ā§āĻŸāĻžāĻ°ā§āĻŸāĻ†āĻĒ āĻ•ā§āĻ°āĻŽ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧāĨ¤

āĻāĻŸāĻŋ āĻ†āĻŽāĻžāĻ° āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡ āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡ ( https://habr.com/ru/post/477008/ https://github.com/skif-web/monitor)

  1. āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧ
  2. settings_restore.service āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻšāĻžāĻ˛ā§ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻāĻŸāĻŋ āĻĄā§‡āĻŸāĻž āĻŦāĻŋāĻ­āĻžāĻ—ā§‡ settings.txt āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ‰āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°ā§‡āĨ¤ āĻ¯āĻĻāĻŋ āĻāĻŸāĻŋ āĻ¸ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ¨āĻž āĻĨāĻžāĻ•ā§‡, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻāĻ•āĻŸāĻŋ āĻ°ā§‡āĻĢāĻžāĻ°ā§‡āĻ¨ā§āĻ¸ āĻĢāĻžāĻ‡āĻ˛ āĻ¤āĻžāĻ° āĻœāĻžāĻ¯āĻŧāĻ—āĻžāĻ¯āĻŧ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻ°āĻĒāĻ°, āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ¸ā§‡āĻŸāĻŋāĻ‚āĻ¸ āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ:
    • āĻĒā§āĻ°āĻļāĻžāĻ¸āĻ•ā§‡āĻ° āĻĒāĻžāĻ¸āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻĄ
    • āĻšā§‹āĻ¸ā§āĻŸāĻ¨āĻžāĻŽ,
    • āĻ¸āĻŽāĻ¯āĻŧ āĻ…āĻžā§āĻšāĻ˛
    • āĻ˛ā§‹āĻ•ā§‡āĻ˛
    • āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŽāĻŋāĻĄāĻŋāĻ¯āĻŧāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡ āĻ•āĻŋāĻ¨āĻž āĻ¤āĻž āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻ•āĻ°ā§‡āĨ¤ āĻĄāĻŋāĻĢāĻ˛ā§āĻŸāĻ°ā§‚āĻĒā§‡, āĻšāĻŋāĻ¤ā§āĻ°ā§‡āĻ° āĻ†āĻ•āĻžāĻ° āĻ›ā§‹āĻŸ - āĻŽāĻŋāĻĄāĻŋāĻ¯āĻŧāĻžāĻ¤ā§‡ āĻ…āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋ āĻāĻŦāĻ‚ āĻ°ā§‡āĻ•āĻ°ā§āĻĄ āĻ•āĻ°āĻžāĻ° āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻ° āĻœāĻ¨ā§āĻ¯āĨ¤ āĻ¸ā§āĻŸāĻžāĻ°ā§āĻŸāĻ†āĻĒā§‡, āĻāĻŸāĻŋ āĻāĻ–āĻ¨āĻ“ āĻ…āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻ¸ā§āĻĨāĻžāĻ¨ āĻ†āĻ›ā§‡ āĻ•āĻŋāĻ¨āĻž āĻ¤āĻž āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°ā§‡āĨ¤ āĻ¯āĻĻāĻŋ āĻĨāĻžāĻ•ā§‡, āĻĄāĻŋāĻ¸ā§āĻ•āĻŸāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻŦāĻŋāĻ­āĻžāĻœāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
    • MAC āĻ āĻŋāĻ•āĻžāĻ¨āĻž āĻĨā§‡āĻ•ā§‡ āĻŽā§‡āĻļāĻŋāĻ¨-āĻ†āĻ‡āĻĄāĻŋ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡āĨ¤ DHCP āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻāĻ•āĻ‡ āĻ āĻŋāĻ•āĻžāĻ¨āĻž āĻĒāĻžāĻ“āĻ¯āĻŧāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻŸāĻŋ āĻ—ā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ
    • āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻ¸ā§‡āĻŸāĻŋāĻ‚āĻ¸
    • āĻ˛āĻ—ā§‡āĻ° āĻ†āĻ•āĻžāĻ° āĻ¸ā§€āĻŽāĻŋāĻ¤ āĻ•āĻ°ā§‡
    • āĻŦāĻžāĻšā§āĻ¯āĻŋāĻ• āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻŸāĻŋ āĻ•āĻžāĻœā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡ (āĻ¯āĻĻāĻŋ āĻ¸āĻ‚āĻļā§āĻ˛āĻŋāĻˇā§āĻŸ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĻŸāĻŋ āĻ¸āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻĨāĻžāĻ•ā§‡ āĻāĻŦāĻ‚ āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻšāĻ¯āĻŧ)
  3. āĻĒā§‹āĻ¸ā§āĻŸāĻ—ā§āĻ°ā§‡āĻ¸ā§āĻ• āĻļā§āĻ°ā§ āĻ•āĻ°ā§āĻ¨
  4. āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ° āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧāĨ¤ zabbix āĻ¨āĻŋāĻœā§‡āĻ‡ āĻāĻŦāĻ‚ āĻāĻ° āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻŸāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨:
    • āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡ āĻāĻ•āĻŸāĻŋ zabbix āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻ†āĻ›ā§‡ āĻ•āĻŋāĻ¨āĻž āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°ā§‡āĨ¤ āĻ¯āĻĻāĻŋ āĻ¤āĻž āĻ¨āĻž āĻšāĻ¯āĻŧ, āĻāĻŸāĻŋ āĻļā§āĻ°ā§āĻ° āĻĄāĻžāĻŽā§āĻĒ āĻĨā§‡āĻ•ā§‡ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ (āĻœā§āĻ¯āĻžāĻŦāĻŋāĻ•ā§āĻ¸ āĻ¸āĻš)
    • āĻŸāĻžāĻ‡āĻŽ āĻœā§‹āĻ¨ā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ (āĻ“āĻ¯āĻŧā§‡āĻŦ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĢā§‡āĻ¸ā§‡ āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨)
    • āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ†āĻ‡āĻĒāĻŋ āĻĒāĻžāĻ“āĻ¯āĻŧāĻž āĻ—ā§‡āĻ›ā§‡, āĻāĻŸāĻŋ āĻ‡āĻ¸ā§āĻ¯ā§āĻ¤ā§‡ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧ (āĻ•āĻ¨āĻ¸ā§‹āĻ˛ā§‡ āĻ˛āĻ— āĻ‡āĻ¨ āĻ•āĻ°āĻžāĻ° āĻ†āĻŽāĻ¨ā§āĻ¤ā§āĻ°āĻŖ)
  5. āĻ†āĻŽāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻšāĻ¯āĻŧ - āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻŦāĻžāĻ•ā§āĻ¯āĻžāĻ‚āĻļāĻŸāĻŋ āĻ‰āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻšāĻ¯āĻŧ
  6. āĻĢāĻžāĻ°ā§āĻŽāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤

āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋ āĻ—ā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ, āĻ¤āĻžāĻ°āĻžāĻ‡ āĻ¤āĻžāĻĻā§‡āĻ° āĻ˛āĻžā§āĻšā§‡āĻ° āĻ•ā§āĻ°āĻŽ āĻ¸ā§‡āĻŸ āĻ•āĻ°ā§‡

[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 āĻļā§āĻ°ā§ āĻšāĻŦā§‡āĨ¤

āĻāĻŦāĻ‚ āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž (āĻœā§āĻ¯āĻžāĻŦāĻŋāĻ•ā§āĻ¸ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤āĻŋ)

#!/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

āĻāĻ–āĻžāĻ¨ā§‡ āĻ•āĻŋ āĻ†āĻ›ā§‡:

  • āĻŸāĻžāĻ‡āĻŽāĻžāĻ° āĻŦāĻŋāĻŦāĻ°āĻŖ
  • āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻŦā§āĻŸ āĻĨā§‡āĻ•ā§‡ āĻļā§āĻ°ā§ āĻ•āĻ°ā§‡ āĻĒā§āĻ°āĻĨāĻŽ āĻļā§āĻ°ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ
  • āĻ†āĻ°āĻ“ āĻ˛āĻžā§āĻšā§‡āĻ° āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻ˛
  • āĻŸāĻžāĻ‡āĻŽāĻžāĻ° āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ° āĻ‰āĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻļā§€āĻ˛āĻ¤āĻžāĨ¤ āĻ†āĻ¸āĻ˛ā§‡, āĻāĻ‡ āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚āĻŸāĻŋ āĻŸāĻžāĻ‡āĻŽāĻžāĻ° āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡

āĻŦāĻ¨ā§āĻ§ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°ā§‡āĻ•ā§āĻŸāĻŋāĻ­ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻāĻŦāĻ‚ āĻ†āĻĒāĻ¨āĻžāĻ° āĻļāĻžāĻŸāĻĄāĻžāĻ‰āĻ¨ āĻ˛āĻ•ā§āĻˇā§āĻ¯

āĻ…āĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻ•āĻžāĻļā§‡, āĻ†āĻŽāĻžāĻ•ā§‡ āĻŽā§‡āĻļāĻŋāĻ¨āĻŸāĻŋ āĻŦāĻ¨ā§āĻ§ āĻ•āĻ°āĻžāĻ° āĻ†āĻ°āĻ“ āĻœāĻŸāĻŋāĻ˛ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛ - āĻ†āĻŽāĻžāĻ° āĻ¨āĻŋāĻœā§‡āĻ° āĻ˛āĻ•ā§āĻˇā§āĻ¯ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡, āĻ…āĻ¨ā§‡āĻ•āĻ—ā§āĻ˛āĻŋ āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯āĨ¤ āĻāĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ RemainAfterExit āĻŦāĻŋāĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻāĻ•āĻŸāĻŋ āĻ“āĻ¯āĻŧāĻžāĻ¨āĻļāĻŸ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻžāĻ° āĻ¸ā§āĻĒāĻžāĻ°āĻŋāĻļ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻŦā§‡ āĻāĻŸāĻŋ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°ā§‡āĻ•ā§āĻŸāĻŋāĻ­ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻŦāĻžāĻ§āĻž āĻĻā§‡āĻ¯āĻŧāĨ¤

āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻ¤āĻž āĻšāĻ˛ āĻ¯ā§‡ ExecOnStop āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻĻā§āĻŦāĻžāĻ°āĻž āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻž āĻ•āĻŽāĻžāĻ¨ā§āĻĄāĻ—ā§āĻ˛āĻŋ TTY āĻāĻ° āĻŦāĻžāĻ‡āĻ°ā§‡ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ! āĻāĻŸāĻŋ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻž āĻ¸āĻšāĻœ - tty āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻĒā§‡āĻ¸ā§āĻŸ āĻ•āĻ°ā§āĻ¨ āĻāĻŦāĻ‚ āĻāĻ° āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°ā§āĻ¨āĨ¤

āĻ¤āĻžāĻ‡ āĻ†āĻŽāĻŋ āĻ†āĻŽāĻžāĻ° āĻŸāĻžāĻ°ā§āĻ—ā§‡āĻŸ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻŦāĻ¨ā§āĻ§ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻ•āĻ°ā§‡āĻ›āĻŋāĨ¤ āĻ†āĻŽāĻŋ 100% āĻ¸āĻ āĻŋāĻ• āĻŦāĻ˛ā§‡ āĻĻāĻžāĻŦāĻŋ āĻ•āĻ°āĻŋ āĻ¨āĻž, āĻ¤āĻŦā§‡ āĻāĻŸāĻŋ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡!
āĻāĻŸāĻŋ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛ (āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻļāĻ°ā§āĻ¤ā§‡):
āĻ†āĻŽāĻŋ āĻāĻ•āĻŸāĻŋ āĻ˛āĻ•ā§āĻˇā§āĻ¯ my_shutdown.target āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡āĻ›āĻŋ, āĻ¯āĻž āĻ•āĻžāĻ°āĻ“ āĻ‰āĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻ­āĻ° āĻ•āĻ°ā§‡ āĻ¨āĻž:
my_shutdown.target

[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

  • āĻāĻ‡ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸā§‡āĻ° āĻ­āĻŋāĻ¤āĻ°ā§‡ āĻ†āĻŽāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻ•āĻ°āĻŋāĨ¤ āĻ†āĻĒāĻ¨āĻŋ āĻ¨āĻŽāĻ¨ā§€āĻ¯āĻŧāĻ¤āĻž āĻāĻŦāĻ‚ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ˛āĻ•ā§āĻˇā§āĻ¯ā§‡ āĻ…āĻ¨ā§‡āĻ• āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨:

my_sutdown.sh

#!/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/āĻ°āĻŋāĻŦā§āĻŸ āĻāĻŦāĻ‚ /tmp/āĻļāĻžāĻŸāĻĄāĻžāĻ‰āĻ¨ āĻĢāĻžāĻ‡āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡āĨ¤ āĻ†āĻĒāĻ¨āĻŋ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻ¸āĻš āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻ•āĻ˛ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŦā§‡āĻ¨ āĻ¨āĻž. āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¸ā§‡āĻŦāĻž āĻ¸āĻŽā§āĻ­āĻŦ.

āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ†āĻŽāĻŋ āĻ•āĻžāĻœā§‡āĻ° āĻ¨āĻŽāĻ¨ā§€āĻ¯āĻŧāĻ¤āĻž āĻāĻŦāĻ‚ āĻ•āĻ°ā§āĻŽā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ•ā§āĻ°āĻŽ āĻĨāĻžāĻ•āĻ¤ā§‡ āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŋāĨ¤

āĻ¯āĻžāĻ‡āĻšā§‹āĻ•, āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻŽāĻœāĻžāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧ āĻĒāĻ°ā§‡ āĻāĻ¸ā§‡āĻ›āĻŋāĻ˛āĨ¤ āĻŽā§‡āĻļāĻŋāĻ¨āĻŸāĻŋ āĻŦāĻ¨ā§āĻ§/āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻāĻŦāĻ‚ 2āĻŸāĻŋ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡:

  • āĻ†āĻĒāĻ¨āĻžāĻ° āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ°āĻŋāĻŦā§āĻŸ, āĻļāĻžāĻŸāĻĄāĻžāĻ‰āĻ¨ āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāĻ—ā§āĻ˛āĻŋ (āĻāĻ—ā§āĻ˛āĻŋ āĻāĻ–āĻ¨āĻ“ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽāĻ¸āĻŋāĻŸāĻŋāĻāĻ˛-āĻāĻ° āĻ¸āĻŋāĻŽāĻ˛āĻŋāĻ‚āĻ•) āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°ā§āĻ¨āĨ¤ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸā§‡āĻ° āĻ­āĻŋāĻ¤āĻ°ā§‡, my_shutdown.target āĻ āĻ¯āĻžāĻ¨āĨ¤ āĻāĻŦāĻ‚ āĻ˛āĻ•ā§āĻˇā§āĻ¯ā§‡āĻ° āĻ­āĻŋāĻ¤āĻ°ā§‡āĻ° āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸāĻ—ā§āĻ˛āĻŋ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ systemctl āĻ•āĻ˛ āĻ•āĻ°ā§‡, āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, systemctl āĻ°āĻŋāĻŦā§āĻŸ
  • āĻāĻ•āĻŸāĻŋ āĻ¸āĻšāĻœ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ†āĻŽāĻŋ āĻāĻŸāĻž āĻĒāĻ›āĻ¨ā§āĻĻ āĻ•āĻ°āĻŋ āĻ¨āĻžāĨ¤ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĢā§‡āĻ¸ā§‡, āĻļāĻžāĻŸāĻĄāĻžāĻ‰āĻ¨/āĻ°āĻŋāĻŦā§āĻŸ/āĻ…āĻ¨ā§āĻ¯ āĻ•āĻ˛ āĻ•āĻ°āĻŦā§‡āĻ¨ āĻ¨āĻž, āĻ¤āĻŦā§‡ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻŸāĻžāĻ°ā§āĻ—ā§‡āĻŸ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽāĻ¸āĻŋāĻŸāĻŋāĻāĻ˛ āĻ†āĻ‡āĻ¸ā§‹āĻ˛ā§‡āĻŸ my_shutdown.target-āĻ āĻ•āĻ˛ āĻ•āĻ°āĻŦā§‡āĻ¨ āĻ¨āĻž

āĻ†āĻŽāĻŋ āĻĒā§āĻ°āĻĨāĻŽ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĻŸāĻŋ āĻŦā§‡āĻ›ā§‡ āĻ¨āĻŋāĻ¯āĻŧā§‡āĻ›āĻŋāĨ¤ Systemd-āĻ, āĻ°āĻŋāĻŦā§āĻŸ (āĻĒāĻžāĻ“āĻ¯āĻŧāĻžāĻ° āĻ…āĻĢā§‡āĻ° āĻŽāĻ¤ā§‹) āĻšāĻ˛ 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

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨