Bii o ṣe Ṣẹda ati Ṣiṣe Awọn sipo Iṣẹ Tuntun ni Systemd Lilo Ikarahun Ikarahun


Awọn ọjọ diẹ sẹhin, Mo wa kọja distro Centos 7 32-bit kan ati pe Mo ni ifẹ lati ṣe idanwo rẹ lori ẹrọ atijọ 32-bit kan. Lẹhin ti bẹrẹ ni mo rii pe o ni kokoro kan ati pe o n tu asopọ nẹtiwọọki, eyiti Mo ni lati tan-an\"soke" pẹlu ọwọ ni gbogbo igba lẹhin bata. Nitorina, ibeere naa ni bawo ni MO ṣe le ṣeto iwe afọwọkọ kan ti n ṣe iṣẹ yii, ni ṣiṣe gbogbo akoko ti mo fi bata ẹrọ mi?

O dara, eyi rọrun pupọ ati pe Emi yoo fi ọna ọna eto han ọ nipa lilo awọn ẹka iṣẹ. Ṣugbọn akọkọ iṣafihan kekere si awọn ẹka iṣẹ.

Ninu àpilẹkọ yii, Emi yoo ṣalaye kini iṣẹ iṣẹ\"kan ninu eto jẹ, bawo ni irọrun lati ṣẹda ati ṣiṣe ọkan. Emi yoo gbiyanju lati sọ ohun ti awọn" "ibi-afẹde" jẹ ni irọrun, idi ti a fi pe wọn ni awọn ikojọpọ\" awọn sipo ”ati kini“ fẹ ”wọn. Ni ipari a n lo anfani ti ẹya iṣẹ lati ṣiṣẹ akọọlẹ ti ara wa lẹhin ilana bata.

O han gbangba pe kọnputa rẹ wulo nitori awọn iṣẹ ti o nfunni ati lati ni iṣẹ yii, ọpọlọpọ awọn iṣẹ ni lati pe bi bata bata kọmputa ati de awọn ipele oriṣiriṣi. Awọn iṣẹ miiran ni a pe lati ṣee ṣe nigbati kọnputa ba de fun apẹẹrẹ ipele igbala (runlevel 0) ati awọn miiran nigbati o ba de ipele ti olumulo pupọ (runlevel 3). O le fojuinu awọn ipele wọnyi bi awọn ibi-afẹde.

Ni ibi-afẹde ọna ti o rọrun jẹ ikojọpọ awọn sipo iṣẹ. Ti o ba fẹ lati wo awọn sipo iṣẹ ti n ṣiṣẹ ni ipele grafti.target rẹ, tẹ:

# systemctl --type=service

Bi o ṣe le rii diẹ ninu awọn iṣẹ n ṣiṣẹ ati\"nṣiṣẹ" ni gbogbo igba, lakoko ti awọn miiran n ṣiṣẹ ni akoko kan ati fopin si (jade). Ti o ba fẹ ṣayẹwo ipo iṣẹ kan, tẹ:

# systemctl status firewalld.service

Bi o ṣe le rii Mo ṣayẹwo ipo firewalld.service (abawọn: o le lo adaṣe aifọwọyi fun orukọ iṣẹ naa). O sọ fun mi pe iṣẹ iṣẹ ina ni gbogbo igba ati pe o ti muu ṣiṣẹ.

Ti mu ṣiṣẹ ati alaabo tumọ si pe iṣẹ naa yoo kojọpọ tabi rara, lakoko bata atẹle ni atẹle. Ni apa keji lati bẹrẹ ati da iṣẹ kan duro ni idiwọn ti igba to wa bayi kii ṣe pẹ.

Fun apẹẹrẹ, ti o ba tẹ:

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

O le rii pe firewalld.service jẹ aisise (okú) ṣugbọn o tun n ṣiṣẹ, eyiti o tumọ si pe lakoko bata ti nbọ o yoo kojọpọ. Nitorinaa ti a ba fẹ ki iṣẹ kan rù lakoko akoko bata ni ọjọ iwaju a gbọdọ muu ṣiṣẹ. Ipari nla wo ni! Jẹ ki o ṣẹda ọkan, o rọrun.

Ti o ba lọ si folda naa:

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

O le wo diẹ ninu awọn faili ọna asopọ ti awọn iṣẹ iṣọkan ati diẹ ninu awọn ilana ti\"fẹ" ti ibi-afẹde kan. Fun apẹẹrẹ: kini ohun ti ọpọlọpọ-olumulo afojusun fẹ lati kojọpọ nigbati ilana bata naa de ipele rẹ, ti wa ni atokọ ninu itọsọna pẹlu orukọ /etc/systemd/system/multi-user.target.wants/.

# ls multi-user.target.wants/

Bi o ṣe le rii o ko ni awọn iṣẹ nikan ṣugbọn tun awọn ibi-afẹde miiran ti o tun jẹ awọn ikojọpọ awọn iṣẹ.

Jẹ ki a ṣe iṣiṣẹ iṣẹ kan pẹlu asopọ orukọ .iṣẹ.

# vim connection.service

ki o tẹ iru atẹle (lu \"i" fun ipo ti o fi sii), fipamọ ati jade (pẹlu \"esc" ati \": wq!” ):

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

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

[Install]
WantedBy = multi-user.target

Lati ṣalaye eyi ti o wa loke: a ti ṣẹda ẹyọ kan ti iru iṣẹ (o tun le ṣẹda awọn sipo ti iru afojusun), a ti ṣeto rẹ lati kojọpọ lẹhin ti ipilẹṣẹ nẹtiwọọki (o le ni oye pe ilana fifa soke de awọn ibi-afẹde naa pẹlu asọye aṣẹ) ati pe a fẹ ni gbogbo igba iṣẹ naa bẹrẹ lati ṣe iwe afọwọkọ bash kan pẹlu orukọ conup.sh eyiti a yoo ṣẹda.

Igbadun naa bẹrẹ pẹlu apakan ikẹhin [fi sori ẹrọ]. O sọ pe yoo fẹ nipasẹ\"multi-user.target". Nitorina ti a ba jẹki iṣẹ wa ọna asopọ aami si iṣẹ yẹn yoo ṣẹda ninu folda olona-user.target.wants! Ṣe o? Ati pe ti a ba mu o ọna asopọ naa yoo parẹ. Nitorina o rọrun.

Kan mu ki o ṣayẹwo:

# systemctl enable connection.service

o sọ fun wa pe ọna asopọ aami ni folda multi-user.target.wants ti ṣẹda. Ṣayẹwo:

# ls multi-user.target.wants/

Bi o ṣe le rii\"connection.service" ti ṣetan fun fifin ni atẹle, ṣugbọn a gbọdọ ṣẹda faili afọwọkọ ni akọkọ.

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

Ṣafikun laini atẹle ni inu vim ki o fi pamọ:

#!/bin/bash
nmcli connection up enp0s3

Dajudaju ti o ba fẹ iwe afọwọkọ rẹ lati ṣe nkan miiran, o le tẹ ohunkohun ti o fẹ dipo ila keji.

Fun apere,

#!/bin/bash
touch /tmp/testbootfile

iyẹn yoo ṣẹda faili inu/folda tmp (lati kan ṣayẹwo pe iṣẹ rẹ n ṣiṣẹ).

A gbọdọ tun jẹ ki iwe afọwọkọ ṣiṣẹ:

# chmod +x conup.sh

Bayi a ti ṣetan. Ti o ko ba fẹ lati duro de bata to n bọ (o ti ṣiṣẹ tẹlẹ) a le bẹrẹ iṣẹ fun titẹ igba lọwọlọwọ:

# systemctl start connection.service

Voila! Asopọ mi ti wa ni ṣiṣiṣẹ!

Ti o ba yan lati kọ aṣẹ\"ifọwọkan/tmp/testbootfile" inu iwe afọwọkọ naa, lati kan ṣayẹwo iṣẹ rẹ, iwọ yoo wo faili yii ti a ṣẹda inu/folda folda.

Mo nireti ireti lati ran ọ lọwọ lati ṣawari kini awọn iṣẹ, fẹ, awọn ibi-afẹde ati awọn iwe afọwọkọ ti n ṣiṣẹ lakoko gbigbe jẹ gbogbo nipa.