Horudhac
Marka la horumarinayo Linux, hawsha abuurista qoraallada is-dhexgalka ee la fuliyo marka nidaamka la shido ama la xiro ayaa soo baxda. Nidaamka V tani way fududayd, laakiin systemd waxay samaynaysaa hagaajin. Laakin waxa ay yeelan kartaa waqtiyo u gaar ah.
Maxaan ugu baahanahay bartilmaameedyo?
Inta badan waxaa loo qoraa in bartilmaameedku uu u adeego sidii analoogga runlevel ee nidaamka V -init. Anigu asal ahaan waan diidanahay. Waxaa jira qaar badan oo iyaga ka mid ah oo waxaad u qaybin kartaa baakadaha kooxo iyo, tusaale ahaan, bilaw koox adeegyo ah oo leh hal amar oo samee ficillo dheeraad ah. Waxaa intaa dheer, ma laha wax kala sareyn, kaliya ku tiirsanaanta.
Tusaalaha bartilmaameedka marka karti loo yeesho ( dulmarka muuqaalka) oo wata qoraal is dhexgalka oo socda
Sharaxaada bartilmaameedka laftiisa:
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
Bartilmaameedkani wuxuu bilaaban doonaa marka multi-user.target la bilaabo oo uu wacayo installer.service. Si kastaba ha ahaatee, waxaa jiri kara adeegyo badan oo noocaas ah.
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
Ugu dambayntiina, tusaale qoraalka la fuliyay:
#!/bin/bash
# ΠΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΠΌ Π² tty3
chvt 3
echo "Install, y/n ?"
read user_answer
Waxa ugu muhiimsan waa in la doorto final.target - bartilmaameedka uu nidaamku ku yimaado bilowga. Inta lagu jiro nidaamka bilowga, systemd wuxuu mari doonaa ku tiirsanaanta wuxuuna bilaabayaa wax kasta oo uu u baahan yahay.
Waxaa jira siyaabo kala duwan oo loo doorto final.target, waxaan u isticmaalay ikhtiyaarka xamuulka tan.
Daahfurka ugu dambeeya wuxuu u eg yahay sidan:
- Bootloaderku wuu bilaabmayaa
- Bootloader-ku wuxuu bilaabaa inuu bilaabo firmware-ka isagoo ka gudbaya heerka final.target
- Systemd wuxuu bilaabay inuu bilaabo nidaamka. Si isdaba joog ah u taga installer.target ama work.target laga bilaabo basic.target iyada oo loo marayo ku tiirsanaanta (tusaale, multi-user.target). Dambe wuxuu keenaa nidaamka inuu ku shaqeeyo qaabka la rabo
Diyaarinta firmware-ka si loo bilaabo
Marka la abuurayo firmware, hawshu had iyo jeer waxay soo baxdaa soo celinta nidaamka nidaamka bilowga iyo badbaadinta marka la xiro. Dawladdu waxay ka dhigan tahay faylalka habaynta, kaydka kaydka xogta, goobaha interface, iwm.
Nidaamku wuxuu ku shaqeeyaa isla bartilmaameedka si barbar socda. Waxaa jira ku tiirsanaano kuu oggolaanaya inaad go'aamiso taxanaha bilawga qoraallada.
Sidee uga shaqeysaa mashruucayga (
- Nidaamku wuu bilaabmayaa
- Adeegga settings_restore.waa la bilaabay.Waxay hubisaa joogitaanka Settings.txt faylka qaybta xogta. Haddii aysan jirin, markaas faylka tixraaca ayaa la dhigayaa meeshiisa, marka xigta, nidaamka nidaamka waa la soo celinayaa:
- furaha maamulaha
- magaca martida loo yahay
- aagga waqtiga
- deegaanka
- Wuxuu go'aamiyaa in dhammaan warbaahinta la isticmaalay iyo in kale. Sida caadiga ah, cabbirka sawirku wuu yar yahay - si ay u fududaato koobiyeynta iyo duubista warbaahinta. Bilawga, waxay hubisaa inay wali jirto meel aan la isticmaalin. Haddii ay jirto, saxanka waa la kala qaybiyaa.
- Soo saarista mishiinka-id ka ciwaanka MAC Tani waxay muhiim u tahay helitaanka isla cinwaanka DHCP
- Dejinta shabakada
- Waxay xaddidaysaa cabbirka geedaha
- Dareewalka dibadda ayaa loo diyaarinayaa shaqo (haddii ikhtiyaarka u dhigma la awoodo oo darawalku cusub yahay)
- Bilow postgresq
- Adeegga soo celinta ayaa bilaabmaya. Waxaa loo baahan yahay si loo diyaariyo zabbix lafteeda iyo xog-ururinteeda:
- Wuxuu hubiyaa in uu horeba u jiray xogta zabbix Haddaysan ahayn, waxa laga abuuray qashin-qubka bilowga (oo ay ku jirto zabbix)
- liis aagagga wakhtiga ayaa la abuuray (loo baahan yahay in lagu muujiyo interface interneedka)
- IP-ga hadda jira waa la helay, waxaa lagu soo bandhigay arrin (casumaad lagu soo galo console-ka)
- Martiqaadku wuu is beddelaa - weedha shaqo diyaar u ah ayaa soo muuqata
- Firmware-ku waa diyaar in la isticmaalo
Faylasha adeegyadu waa muhiim, waa kuwa dejinaya isku xigxiga bilaabidooda
[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
Sida aad arki karto, waxaan rakibay ku-tiirsanaanta si qoraalkaygu marka hore u shaqeeyo, ka dibna kaliya ayaa shabakadu kor u kici doontaa oo DBMS ayaa bilaabi doonta.
Iyo adeegga labaad (diyaarinta 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
Way ka yara dhib badan tahay halkan Laakin KA HOR inta aan la bilaabin adeegyada zabbix.
Adeegga saacada ee logrotate
Systemd wuxuu bedeli karaa CRON. Dhab ahaantii. Intaa waxaa dheer, saxnimadu maaha ilaa daqiiqada, laakiin ilaa tan labaad (ka waran haddii loo baahdo) Ama waxaad samayn kartaa saacad keli ah, oo loo yaqaan waqti ka baxsan dhacdo.
Waxa ay ahayd saacada keli ah ee tiriya wakhtiga bilawga mishiinka aan abuuray.
Tani waxay u baahan doontaa 2 fayl
logrotateTimer.service - sharaxaadda dhabta ah ee adeega:
[Unit]
Description=run logrotate
[Service]
ExecStart=logrotate /etc/logrotate.conf
TimeoutSec=300
Way fududahay - sharaxaadda amarka bilaabista.
Faylka labaad logrotateTimer.timer waa meesha ay saacaduhu shaqeeyaan:
[Unit]
Description=Run logrotate
[Timer]
OnBootSec=15min
OnUnitActiveSec=15min
[Install]
WantedBy=timers.target
Waa maxay halkan:
- tilmaanta saacada
- Waqtiga bilawga koowaad, laga bilaabo nidaamka boot
- muddada bilaabista dheeraadka ah
- Ku-tiirsanaanta adeegga saacadda, dhab ahaantii, tani waa xadhigga sameeya saacad-sameeyaha
Qoraal is-dhexgal ah marka la xirayo iyo bartilmaameedkaaga xiritaanka
Horumar kale, waxaan ku qasbanaaday in aan sameeyo nooc aad u adag oo ah daminta mishiinka - iyada oo loo marayo bartilmaameedkayga, si aan u sameeyo waxqabadyo badan. Badanaa waxaa lagu talinayaa in la abuuro adeeg onehot leh ikhtiyaarka RemainAfterExit, laakiin tani waxay kaa ilaalinaysaa inaad abuurto qoraal is dhexgal ah.
Laakiin xaqiiqadu waxay tahay in amarrada uu bilaabay ikhtiyaarka ExecOnStop lagu fuliyo meel ka baxsan TTY! Way fududahay in la hubiyo - ku dheji amarka tty oo badbaadi wax soo saarkiisa.
Sidaa darteed, waxaan hirgaliyay xidhitaanka iyada oo loo marayo bartilmaameedkaygii. Ma sheeganayo inaan 100% sax ahay, laakiin way shaqeysaa!
Sida loo sameeyay (si guud ahaan):
Waxaan sameeyay bartilmaameed my_shutdown.target, kaas oo aan cidna ku xidhnayn:
my_xitdown. bartilmaameed
[Unit]
Description=my shutdown
AllowIsolate=yes
Wants=my_shutdown.service
Markaad aado bartilmaameedkan (iyada oo loo sii marayo systemctl go'doomin my_shutdwn.target), waxay bilawday adeegga my_shutdown.adeegga, shaqadeedu waa mid fudud - si loo fuliyo qoraalka 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
- Qoraalkan dhexdiisa waxaan ku sameeyaa ficilada lagama maarmaanka ah. Waxaad ku dari kartaa qoraallo badan bartilmaameedka dabacsanaanta iyo ku habboonaanta:
xiritaankayga.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
Ogow. Isticmaalka /tmp/reboot iyo /tmp/shutdown faylasha. Ma wici kartid bartilmaameedka. Kaliya adeeg ayaa suurtagal ah.
Laakiin waxaan u adeegsadaa bartilmaameedka si aan u yeesho dabacsanaan xagga shaqada iyo hab-dhaqannada la dammaanad qaaday.
Si kastaba ha ahaatee, waxa ugu xiisaha badnaa ayaa yimid markii dambe. Mashiinku wuxuu u baahan yahay in la damiyo/dib u bilaabo. Waxaana jira 2 doorasho:
- Ku beddel rebootka, xidhidhiyaha iyo amarada kale (waxay wali calaamad u yihiin systemctl) qoraalkaaga. Gudaha qoraalka, aad my_shutdown.target. Iyo qoraallada ku jira bartilmaameedka ka dib si toos ah ugu wac systemctl, tusaale ahaan, systemctl reboot
- Doorasho ka fudud, laakiin ma jecli. Dhammaan is-dhex-galka, ha wicin xirid/dib-u-boot/mid kale, laakiin si toos ah u wac systemctl-ka-go'doominta my_shutdown.target
Waxaan doortay doorashada koowaad. In systemd, reboot (sida poweroff) waa calaamado la xidhiidha systemd.
ls -l /sbin/poweroff
lrwxrwxrwx 1 root root 14 ΡΠ΅Π½ 30 18:23 /sbin/poweroff -> /bin/systemctl
Sidaa darteed, waxaad ku beddeli kartaa qoraalladaada:
dib u bilow
#!/bin/sh
touch /tmp/reboot
sudo systemctl isolate my_shutdown.target
fi
Source: www.habr.com