Whakataki
I te wa e whakawhanake ana mo Linux, ka puta te mahi ki te hanga tuhinga tauwhitiwhiti ka mahia i te wa e ka ana, e kati ana ranei te punaha. I roto i te punaha V he ngawari tenei, engari ma te punaha ka whakarereke. Engari ka taea e ia ona ake taima.
He aha tatou e hiahia ai ki nga whaainga?
He maha nga wa ka tuhia ko te whaainga he rite ki te runlevel i roto i te punaha V -init. Ko taku tino whakahē. He maha ake o raatau ka taea e koe te wehewehe i nga kohinga ki nga roopu, hei tauira, whakarewahia he roopu ratonga me te whakahau kotahi me te mahi i etahi atu mahi. I tua atu, karekau he arowhai, he whakawhirinaki anake.
He tauira o te whainga ina whakahohea (tirohanga ahua) me te whakahaere i te tuhinga tauwhitiwhiti
Whakaahuatanga o te whaainga ake:
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
Ka timata tenei whaainga ina whakarewahia te maha-kaiwhakamahi.target ka waea atu ki installer.service. Heoi, tera pea he maha nga ratonga penei.
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
Ka mutu, he tauira o te tuhinga e mahia ana:
#!/bin/bash
# Переходим в tty3
chvt 3
echo "Install, y/n ?"
read user_answer
Ko te mea nui ko te kowhiri i te whiringa whakamutunga.target - te whaainga kia tae mai te punaha i te tiimatanga. I te wa o te mahi whakaoho, ka haere a systemd ki nga whakawhirinakitanga me te whakarewa i nga mea katoa e hiahiatia ana.
He rereke nga huarahi ki te whiriwhiri i te final.target, I whakamahia e ahau te whiringa uta mo tenei.
He penei te ahua o te whakarewanga whakamutunga:
- Ka timata te bootloader
- Ka timata te bootloader ki te whakarewa i te firmware ma te tuku i te tawhā final.target
- Ka timata a Systemd ki te timata i te punaha. Ka haere ki te installer.target, work.target ranei mai i te basic.target ma o raatau whakawhirinakitanga (hei tauira, multi-user.target). Ko te whakamutunga ka kawe i te punaha ki te mahi i roto i te aratau e hiahiatia ana
Te whakarite i te firmware mo te whakarewatanga
I te wa e hanga ana i te firmware, ka ara ake te mahi ki te whakaora i te ahuatanga o te punaha i te tiimatanga me te penapena i te wa e kati ana. Ko te tikanga o te State ko nga konae whirihoranga, nga putunga putunga raraunga, nga tautuhinga atanga, aha atu.
Ka whakahaerehia e Systemd nga tukanga i roto i te whaainga kotahi i roto i te whakarara. He herenga ka taea e koe te whakatau i te raupapa whakaoho o nga tuhinga.
Me pehea te mahi i roto i taku kaupapa (
- Ka timata te punaha
- Ka whakarewahia te ratonga settings_restore.service. Ka tirotirohia te ahua o te konae settings.txt i te waahanga raraunga. Mena kaore i reira, ka tukuna he konae tohutoro ki tona waahi. I muri mai, ka whakahokia nga tautuhinga punaha:
- kupuhipa kaiwhakahaere
- ingoa manaaki,
- rohe wa
- rohe
- Ka whakatau mena kei te whakamahia nga papaaho katoa. Ma te taunoa, he iti te rahi o te ahua - mo te ngawari ki te kape me te tuhi ki te hunga pāpāho. I te tiimatanga, ka tirotirohia mena he waahi kaore ano kia whakamahia. Mena kei reira, ka wehewehea ano te kōpae.
- Te whakaputa miihini-id mai i te wahitau MAC. He mea nui tenei mo te whiwhi i taua wahitau ma te DHCP
- Tautuhinga whatunga
- Whakawhāitihia te rahi o ngā rākau
- Kei te whakareri te puku o waho mo te mahi (mehemea ka whakahohea te kowhiringa e pa ana, he hou te puku)
- Tīmatahia te postgresq
- Ka timata te ratonga whakaora. E hiahiatia ana ki te whakarite i te zabbix me tana papaa raraunga:
- Ka taki mena kei te takoto kee he papaa raraunga zabbix. Ki te kore, he mea hanga mai i nga putunga arawhiti (me te zabbix)
- ka hangaia he rarangi o nga waahi waahi (me whakaatu ki te atanga tukutuku)
- Ka kitea te IP o naianei, ka whakaatuhia i roto i te take (te tono ki te takiuru ki te papatohu)
- Ka huri te powhiri - ka puta te kupu Riri ki te mahi
- Kua reri te firmware mo te whakamahi
He mea nui nga konae ratonga, ma ratou e whakatakoto te raupapa o to ratou whakarewatanga
[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
Kei te kite koe, i whakauruhia e ahau nga whakawhirinaki kia mahi tuatahi taku tuhinga, katahi ka piki ake te whatunga ka timata te DBMS.
Me te karakia tuarua (zabbix preparation)
#!/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
He iti ake te uaua i konei Ko te whakarewatanga kei roto ano i te maha-kaiwhakamahi.target, engari I muri i te tiimata i te postgresql DBMS me taku tautuhinga_restore. Engari i mua i te tiimata i nga ratonga zabbix.
Ratonga taima mo te logrotate
Ka taea e Systemd te whakakapi i te CRON. Tino. I tua atu, ko te tika kaore e eke ki te meneti, engari ki te tuarua (mehemea e hiahiatia ana) Ka taea ranei e koe te hanga i te taima monotonous, ka karangahia e te waahi mai i tetahi huihuinga.
Ko te taima mokemoke te tatau i te wa mai i te timatanga o te miihini i hanga e au.
Ka hiahiatia kia 2 nga konae
logrotateTimer.service - te whakaahuatanga o te ratonga:
[Unit]
Description=run logrotate
[Service]
ExecStart=logrotate /etc/logrotate.conf
TimeoutSec=300
He maamaa - he whakaahuatanga mo te whakahau whakarewa.
Ko te konae tuarua logrotateTimer.timer ko te waahi e mahi ai nga matawā:
[Unit]
Description=Run logrotate
[Timer]
OnBootSec=15min
OnUnitActiveSec=15min
[Install]
WantedBy=timers.target
He aha kei konei:
- whakaahuatanga taima
- Te wa tiimata tuatahi, ka tiimata mai i te punaha whakahaere
- te wa o te whakarewanga ano
- Te ti'aturi ki te ratonga matawā
Hotuhi tauwhitiwhiti i te wa e tutakina ana me to whaainga kati
I tetahi atu whanaketanga, me mahi au i tetahi waahanga uaua ake o te whakaweto i te miihini - na roto i taku ake whaainga, kia nui ai nga mahi. I te nuinga o te wa ka tohutohuhia kia hanga he ratonga oneshot me te whiringa RemainAfterExit, engari na tenei ka aukati i a koe ki te hanga tuhinga tauwhitiwhiti.
Engari ko te mea ko nga whakahau i whakarewahia e te whiringa ExecOnStop ka mahia i waho o te TTY! He ngawari ki te tirotiro - whakapiri i te whakahau tty ka tiakina tona putanga.
Na reira, i whakatinanahia e au te kati na roto i taku whaainga. Kaore au e kii he 100% te tika, engari he pai!
Me pehea te mahi (i roto i nga tikanga whanui):
I hanga e ahau he whaainga my_shutdown.target, kaore i whakawhirinaki ki tetahi:
my_shutdown.target
[Unit]
Description=my shutdown
AllowIsolate=yes
Wants=my_shutdown.service
I te wa e haere ana ki tenei whaainga (ma te systemctl i wehe i taku_shutdwn.target), ka whakarewahia e ia te ratonga my_shutdown.service, he maamaa te mahi - ki te mahia te tuhinga 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
- I roto i tenei tuhinga ka mahia e au nga mahi e tika ana. Ka taea e koe te taapiri i nga tuhinga maha ki te whaainga mo te ngawari me te ngawari:
my_shutdown.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
Tuhipoka. Ma te whakamahi i nga konae /tmp/reboot me /tmp/whakaweto. Kaore e taea e koe te karanga i te whaainga me nga tawhā. Ko te ratonga anake ka taea.
Engari ka whakamahi ahau i te whaainga kia ngawari ki te mahi me te raupapa o nga mahi.
Heoi, ko te mea tino pai ka tae mai i muri mai. Me whakaweto/whakahoutia te miihini. A e rua nga whiringa:
- Whakakapihia te whakaara ano, te kati me etahi atu whakahau (he hononga hono tonu ki te systemctl) me to tuhinga.I roto i te tuhinga, haere ki my_shutdown.target. A ko nga tuhinga kei roto i te whaainga ka karanga tika ki te systemctl, hei tauira, systemctl reboot
- He whiringa ngawari ake, engari kaore au e pai. I roto i nga atanga katoa, kaua e karanga whakaweto / whakaara ano / etahi atu, engari me waea tika ki te target systemctl wehe my_shutdown.target
I whiriwhiria e ahau te whiringa tuatahi. I roto i te systemd, ko te whakaara ano (penei i te poweroff) he hononga hono ki te systemd.
ls -l /sbin/poweroff
lrwxrwxrwx 1 root root 14 сен 30 18:23 /sbin/poweroff -> /bin/systemctl
Na reira, ka taea e koe te whakakapi ki a koe ake tuhinga:
tīmata anō
#!/bin/sh
touch /tmp/reboot
sudo systemctl isolate my_shutdown.target
fi
Source: will.com