Otu esi emepụta ma na-agba ọsọ nkeji ọrụ ọhụrụ na Systemd Iji Shell Script


Ụbọchị ole na ole gara aga, ahụrụ m Centos 7 32-bit distro ma enwere m ọchịchọ ịnwale ya na igwe 32-bit ochie. Mgbe m kwụsịrị, achọpụtara m na ọ nwere ahụhụ na ọ na-atọpụ njikọ netwọk, nke m ga-eji aka gbanye ya mgbe ọ bụla buut. Ya mere, ajụjụ bụ ka m ga-esi tinye edemede na-arụ ọrụ a, na-agba ọsọ ọ bụla. oge m buut igwe m?

Ọ dị mma, nke a dị mfe ma m ga-egosi gị usoro sistemụ site na iji nkeji ọrụ. Mana buru ụzọ nweta obere mmalite nke ngalaba ọrụ.

N'isiokwu a, m ga-akọwa ihe otu ọrụ Systemd dị, otú ọ dị mfe ịmepụta na ịgba ọsọ. M ga-agbalị ime ka ihe bụ ebumnobi dị mfe, ihe kpatara anyị ji akpọ ha nchịkọta nke. nkeji na kedu ihe ha chọrọ. N'ikpeazụ, anyị na-eji ohere nke otu ọrụ na-agba ọsọ edemede nke anyị ka usoro buut gasịrị.

O doro anya na kọmputa gị bara uru n'ihi ọrụ ndị ọ na-enye na iji nwee ọrụ a, a ghaghị ịkpọ ọtụtụ ọrụ dị ka akpụkpọ ụkwụ kọmputa ma ruo ọkwa dị iche iche. A na-akpọ ọrụ ndị ọzọ ka e gbuo mgbe kọmputa ahụ ruru dịka ọmụmaatụ ọkwa nnapụta (runlevel 0) na ndị ọzọ mgbe ọ ruru ọkwa ọtụtụ onye ọrụ (runlevel 3). Ị nwere ike iche n'echiche ọkwa ndị a dị ka ebumnuche.

N'ụzọ dị mfe ebumnuche bụ nchịkọta nke ngalaba ọrụ. Ọ bụrụ na ịchọrọ ileba anya na ngalaba ọrụ na-agba ọsọ na ọkwa graphical.target gị, pịnye:

# systemctl --type=service

Dị ka ị na-ahụ na ụfọdụ ọrụ na-arụ ọrụ na \na-agba ọsọ oge niile, ebe ndị ọzọ na-agba ọsọ otu oge ma kwụsị (wepụ) Ọ bụrụ na ịchọrọ ịlele ọkwa nke ọrụ, pịnye:

# systemctl status firewalld.service

Dịka ị na-ahụ, enyochara m ọkwa nke firewalld.service (ndụmọdụ: ị nwere ike iji auto-mezue maka aha ọrụ ahụ). Ọ na-agwa m na ọrụ firewalld na-arụ ọrụ oge niile ma na-enyere ya aka.

Agbanyere na nkwarụ pụtara na a ga-ebunye ọrụ ahụ kpamkpam ma ọ bụ na ọ gaghị, n'oge buut na-esote. N'aka nke ọzọ ịmalite na ịkwụsị ọrụ nwere njedebe nke nnọkọ dị ugbu a ma ọ bụghị nke na-adịgide adịgide.

Dịka ọmụmaatụ, ọ bụrụ na ị pịnye:

# systemctl stop firewalld.service
# systemctl status firewalld.service

Ị nwere ike ịhụ na firewalld.service adịghị arụ ọrụ (nwụrụ anwụ) mana ọ ka na-akwado ya, nke pụtara na n'oge buut ọzọ a ga-ebu ya. Ya mere, ọ bụrụ na anyị chọrọ ka a kwajuru ọrụ n'oge buut oge n'ọdịnihu anyị ga-enyere ya aka. Lee nkwubi okwu magburu onwe ya! Ka ịmepụta otu, ọ dị mfe.

Ọ bụrụ na ịga na folda:

# cd /etc/systemd/system
# ls -l

Ị nwere ike ịhụ ụfọdụ faịlụ njikọ nke ọrụ unit na ụfọdụ akwụkwọ ndekọ aha nke \chọrọ nke ebumnuche. Dịka ọmụmaatụ: ihe ebumnuche ọtụtụ onye ọrụ chọrọ ka ebu ya mgbe usoro buut ruru ogo ya, edepụtara ya na ndekọ aha ya. /etc/systemd/system/multi-user.target.wants/.

# ls multi-user.target.wants/

Dịka ị na-ahụ na ọ bụghị naanị ọrụ nwere kamakwa ebumnuche ndị ọzọ bụkwa mkpokọta ọrụ.

Ka anyị mee otu ọrụ na njikọ aha.ọrụ.

# vim connection.service

ma pịnye ihe ndị a (kụọ \i maka itinye ọnọdụ), chekwaa ya wee pụọ (jiri \esc na \:wq!):

[Unit]
Description = making network connection up
After = network.target

[Service]
ExecStart = /root/scripts/conup.sh

[Install]
WantedBy = multi-user.target

Iji kọwaa ihe ndị dị n'elu: anyị ekepụtala otu ụdị ọrụ (ị nwekwara ike ịmepụta nkeji nke ụdị ebumnuche), anyị edozila ya ka a na-ebufe ya mgbe netwọk ahụ gasịrị.target (ị nwere ike ịghọta na usoro ịgba ọsọ na-erute ihe mgbaru ọsọ na nkọwa). Order) na anyị chọrọ oge ọ bụla ọrụ ahụ malitere ime ihe odide bash na aha conup.sh nke anyị ga-emepụta.

Ihe ọchị na-amalite na akụkụ ikpeazụ [install]. Ọ na-agwa na a ga-achọ ya site na \multi-user.target Ya mere, ọ bụrụ na anyị enyere ọrụ anyị aka njikọ ihe atụ nke ọrụ a ga-emepụta n'ime folda multi-user.target.wants! Nweta ya? Ma ọ bụrụ na anyị gbanyụọ ya. a ga-ehichapụ njikọ ahụ. Ọ dị mfe.

Naanị gbanye ya wee lelee:

# systemctl enable connection.service

ọ na-agwa anyị na e mepụtara njikọ ihe atụ na folda multi-user.target.wants. Lelee ya:

# ls multi-user.target.wants/

Dị ka ị na-ahụ \connection.service dị njikere maka booting ọzọ, ma anyị ga-ebu ụzọ mepụta faịlụ script.

# cd /root
# mkdir scripts
# cd scripts
# vim conup.sh

Tinye ahịrị ndị a n'ime vim wee chekwaa ya:

#!/bin/bash
nmcli connection up enp0s3

N'ezie ọ bụrụ na ịchọrọ ka script gị mee ihe ọzọ, ị nwere ike pịnye ihe ọ bụla ịchọrọ kama akara nke abụọ.

Ọmụmaatụ,

#!/bin/bash
touch /tmp/testbootfile

nke ahụ ga-emepụta faịlụ n'ime/tmp nchekwa (naanị iji lelee na ọrụ gị na-arụ ọrụ).

Anyị ga-emekwa ka edemede ahụ nwee ike ime ya:

# chmod +x conup.sh

Ugbu a, anyị dị njikere. Ọ bụrụ na ịchọghị ichere ruo mgbe akpụkpọ ụkwụ na-esote (agbanyelarị ya) anyị nwere ike ịmalite ọrụ maka ntinye oge ugbu a:

# systemctl start connection.service

Voila! Njikọ m na-agba ọsọ!

Ọ bụrụ na ị họrọla ide iwu \touch /tmp/testbootfile n'ime edemede ahụ, naanị ka ịlele ọrụ ya, ị ga-ahụ faịlụ a ka emepụtara n'ime /tmp nchekwa.

Enwere m olileanya na m ga-enyere gị aka ịchọpụta ihe ọrụ, chọrọ, ebumnuche na edemede na-agba ọsọ n'oge booting bụ ihe niile.