LFCS: Ijikwa usoro mmalite na ọrụ (SysVinit, Systemd and Upstart) - Akụkụ 7
Ọnwa ole na ole gara aga, Linux Foundation kwupụtara asambodo LFCS (Linux Foundation Certified Sysadmin), mmemme ọhụrụ na-atọ ụtọ nke ebumnuche ya bụ ikwe ka ndị mmadụ sitere na nsọtụ ụwa niile nweta asambodo n'ịrụ ọrụ nchịkwa sistemụ etiti na sistemụ Linux. Nke a gụnyere ịkwado sistemụ na ọrụ na-agba ọsọ, yana nchọta nsogbu na nyocha nke mbụ, gbakwunyere ikike ikpebi mgbe a ga-ebuli okwu na ndị otu injinia.
Vidiyo na-esote na-akọwa mmalite mmalite nke Mmemme Asambodo Linux Foundation.
Nke a bụ akụkụ 7 nke usoro nkuzi 10, ebe a na akụkụ a, anyị ga-akọwa otu esi ejikwa usoro mmalite na ọrụ Linux System, nke achọrọ maka ule asambodo LFCS.
Ijikwa usoro mmalite Linux
Usoro buut nke sistemụ Linux nwere ọtụtụ usoro, nke ọ bụla nwere akụkụ dị iche iche na-anọchi anya ya. Eserese na-esonụ na-achikota nkenke usoro buut wee gosi isi ihe niile metụtara.
Mgbe ị pịa bọtịnụ Power na igwe gị, ngwa ngwa nke echekwara na mgbawa EEPROM na motherboard na-amalite POST ( Nnwale onwe onye ike-na) iji lelee ọnọdụ akụrụngwa ngwaike nke sistemụ. Mgbe emechara POST, firmware wee chọọ wee buo Ogbo mbụ bootloader, nke dị na MBR ma ọ bụ na EFI. nkebi nke diski mbụ dị, ma na-enye njikwa ya.
MBR dị na ngalaba mbụ nke diski ahụ akara ka bootable na ntọala BIOS ma bụrụ 512 bytes n'ogo.
- Bytes 446 nke mbụ: Onye na-ebupụta boot nwere ma koodu arụrụ arụ yana ederede ozi njehie.
- 64 bytes na-esote: Tebụlụ nkebi nwere ndekọ maka nkebi anọ ọ bụla (isi ma ọ bụ ogologo). Tinyere ihe ndị ọzọ, ndekọ ọ bụla na-egosi ọkwa (ọrụ/adịghị arụ ọrụ), nha, na mmalite/njedebe nke nkebi ọ bụla.
- Bytes abụọ ikpeazụ: Nọmba anwansi ahụ na-eje ozi dị ka nlele nkwado nke MBR.
Iwu a na-eme nkwado ndabere nke MBR (n'ihe atụ a, /dev/sda bụ diski ike mbụ). Faịlụ sitere na mbr.bkp nwere ike ịba uru ma ọ bụrụ na tebụl nkebi emebiela, dịka ọmụmaatụ, na-eme ka sistemụ ahụ ghara ịmalite.
N'ezie, iji mee ya ma emechaa ma ọ bụrụ na ọ dị mkpa, anyị ga-echekwa ya ma chekwaa ya n'ebe ọzọ (dị ka ụgbọala USB, dịka ọmụmaatụ). Faịlụ ahụ ga-enyere anyị aka iweghachi MBR ma mee ka anyị gaa ọzọ ma ọ bụrụ naanị ma ọ bụrụ na anyị agbanweghị nhazi draịvụ ike ka ọ dị ugbu a.
# dd if=/dev/sda of=mbr.bkp bs=512 count=1
# dd if=mbr.bkp of=/dev/sda bs=512 count=1
Maka sistemu na-eji usoro EFI/UEFI, UEFI firmware na-agụ ntọala ya iji chọpụta ngwa UEFI a ga-ewepụta yana ebe (ya bụ, nke diski na nkebi ya. EFI nkebi dị).
Na-esote, a na-ejuru ma na-agba ọsọ ọkwa nke abụọ bootloader (aka boot manager). GRUB [Grand Unified Boot] bụ njikwa akpụkpọ ụkwụ a na-ejikarị na Linux. Enwere ike ịchọta otu n'ime ụdị abụọ dị iche na ọtụtụ sistemụ eji eme ihe taa.
- Faịlụ nhazi ihe nketa GRUB: /boot/grub/menu.lst (nkesa ochie, akwadoghị EFI/UEFI firmwares).
- GRUB2 faịlụ nhazi: o yikarịrị, /etc/default/grub.
Ọ bụ ezie na ebumnobi nke ule LFCS anaghị arịọ n'ụzọ doro anya ihe ọmụma gbasara GRUB internals, ọ bụrụ na ị nwere obi ike ma nwee ike mebie sistemụ gị (ị nwere ike ịnwale ya). mbụ na igwe mebere, naanị ma ọ bụrụ na), ịkwesịrị ịgba ọsọ.
# update-grub
Dị ka mgbọrọgwụ ka emegharịa nhazi GRUB iji tinye mgbanwe ndị ahụ.
N'ụzọ bụ isi, GRUB na-eburu ihe ndabara kernel yana ihe oyiyi initrd ma ọ bụ initramfs. N'okwu ole na ole, initrd ma ọ bụ initramfs na-enyere aka n'ịchọpụta ngwaike, nbudata kernel module na nchọpụta ngwaọrụ dị mkpa iji nweta ezigbo mgbọrọgwụ faịlụ.
Ozugbo ezigbo faịlụ faịlụ dị elu, kernel na-eme usoro na njikwa ọrụ (initma ọ bụ systemd, onye njirimara usoro ma ọ bụ PID bụ mgbe niile 1) ịmalite onye ọrụ nkịtị- usoro buut ohere iji weta interface onye ọrụ.
Ma init na systemd bụ daemons (usoro ndabere) na-ejikwa daemons ndị ọzọ, dị ka ọrụ mbụ ga-amalite (n'oge buut) na ọrụ ikpeazụ ga-akwụsị (n'oge mmechi).
Ọrụ mmalite (SysVinit)
Echiche nke runlevels na Linux na-akọwapụta ụzọ dị iche iche isi jiri sistemụ site na ịchịkwa ọrụ ndị na-arụ. N'ikwu ya n'ụzọ ọzọ, runlevel na-achịkwa ihe ọrụ nwere ike ịrụzu na ọnọdụ igbu oge ugbu a = runlevel (na ndị na-enweghị ike).
Na omenala, a na-eme usoro mmalite a dabere na mgbakọ ndị sitere na System V UNIX, na usoro na-agafe na-eme ihe nchịkọta nke scripts nke na-amalite ma kwụsị ọrụ ka igwe na-abanye n'otu runlevel (nke, na okwu ndị ọzọ). , bụ usoro dị iche iche nke na-agba ọsọ usoro).
N'ime runlevel nke ọ bụla, enwere ike ịtọ ọrụ onye ọ bụla ka ọ na-agba ọsọ, ma ọ bụ mechie ma ọ na-agba ọsọ. Ụdị kacha ọhụrụ nke ụfọdụ nkesa bụ isi na-apụ na ụkpụrụ System V na-akwado ọrụ ọhụrụ yana njikwa sistemu a na-akpọ systemd(nke na-anọchi anya sistemụ daemon), mana ọ na-abụkarị. nkwado sysv iwu maka ebumnuche ndakọrịta. Nke a pụtara na ị nwere ike ịgba ọsọ ọtụtụ n'ime ihe a ma ama sysv ngwaọrụ init na nkesa dabere na sistemụ.
Gụọkwa: Gịnị kpatara 'systemd' ji dochie 'init' na Linux
E wezụga ịmalite usoro sistemụ, init na-eleba anya na faịlụ /etc/inittab iji kpebie ihe runlevel ga-abanyerịrị.
Iji gbanwee n'etiti runlevels, anyị nwere ike ịnye mgbanwe runlevel site na iji iwu init: init N (ebe N bụ otu n'ime runlevel ndị edepụtara n'elu). Biko mara na nke a abụghị ụzọ akwadoro iji were sistemụ na-agba ọsọ gaa na runlevel dị iche n'ihi na ọ naghị enye ndị ọrụ abanyela aka na ntị (ya mere na-eme ka ha kwụsị ọrụ na usoro iji kwụsị n'ụzọ na-adịghị mma).
Kama nke ahụ, ekwesịrị iji iwu mechie malitegharịa sistemụ ahụ (nke na-ebu ụzọ ziga ndị ọrụ niile abanyela ozi ịdọ aka ná ntị ma gbochie nbanye ọzọ; ọ na-egosi init ka ịgbanwee runlevels); Otú ọ dị, a ga-edezi runlevel ndabara (nke usoro ahụ ga-ebuba na) na faịlụ /etc/inittab nke mbụ.
Maka nke ahụ, soro usoro ndị a ka ịgbanwee nke ọma n'etiti runlevels, Dị ka mgbọrọgwụ, chọọ ahịrị na-esonụ na /etc/inittab.
id:2:initdefault:
ma gbanwee nọmba 2 maka runlevel achọrọ ya na onye na-edezi ederede masịrị gị, dị ka vim (akọwara na Otu esi eji vi/vim editọ na Linux – Akụkụ 2 nke usoro a).
Na-esote, na-agba ọsọ dị ka mgbọrọgwụ.
# shutdown -r now
Iwu ikpeazụ ahụ ga-amalitegharị sistemụ ahụ, mee ka ọ malite na runlevel akọwapụtara n'oge buut na-esote, ma ga-agbakwa scripts dị na /etc/rc[runlevel].d > akwụkwọ ndekọ aha iji kpebie ọrụ a ga-ebido na nke ekwesịghị ịmalite. Dịka ọmụmaatụ, maka runlevel 2 na sistemụ na-esonụ.
Iji mee ka ma ọ bụ gbanyụọ ọrụ sistemụ na buut, anyị ga-eji iwu chkconfig na CentOS/openSUSE na sysv-rc-confna Debian na usoro. Ngwá ọrụ a nwekwara ike igosi anyị ihe bụ nhazi ọkwa nke ọrụ maka otu runlevel.
Gụọkwa: Otu esi akwụsị ma gbanyụọ ọrụ achọghị na Linux
Na-edepụta nhazi runlevel maka ọrụ.
# chkconfig --list [service name] # chkconfig --list postfix # chkconfig --list mysqld
N'ihe onyonyo a dị n'elu, anyị nwere ike ịhụ na postfix ka atọrọ ịmalite mgbe sistemụ na-abanye runlevels 2 site na 5, ebe mysqld b>ga-agba ọsọ na ndabara maka runlevels 2 ruo 4. Ugbu a were were na nke a abụghị omume a tụrụ anya ya.
Dịka ọmụmaatụ, anyị kwesịrị ịgbanwuo mysqld maka runlevel 5 nakwa, ma gbanyụọ postfix maka runlevels 4 na 5. Nke a bụ ihe anyị ga-eme na nke ọ bụla (gbaa na postfix). na-eso iwu dị ka mgbọrọgwụ).
# chkconfig --level [level(s)] service on # chkconfig --level 5 mysqld on
# chkconfig --level [level(s)] service off # chkconfig --level 45 postfix off
Anyị ga-arụ ọrụ ndị yiri ya na sistemụ Debian dabere na iji sysv-rc-conf.
Ịhazi ọrụ ka ịmalite na-akpaghị aka na runlevel akọwapụtara ma gbochie ya ịmalite na ndị ọzọ niile.
1. Ka anyị jiri iwu na-esonụ hụ ihe runlevels ebe a na-ahazi mdadm ịmalite.
# ls -l /etc/rc[0-6].d | grep -E 'rc[0-6]|mdadm'
2. Anyị ga-eji sysv-rc-conf gbochie mdadm ịmalite na runlevel niile ma e wezụga 2. Naanị lelee ma ọ bụ wepụ (ji oghere oghere) dịka ịchọrọ (ị nwere ike iji igodo akụ bulie elu, ala, aka ekpe na aka nri).
# sysv-rc-conf
Wee pịa q ka ị kwụsị.
3. Anyị ga-amalitegharị usoro ahụ wee malite iwu ọzọ site na STEP 1.
# ls -l /etc/rc[0-6].d | grep -E 'rc[0-6]|mdadm'
Na foto dị n'elu anyị nwere ike ịhụ na a haziri mdadm ka ọ malite naanị na runlevel 2.
Kedu maka sistemụ arụmọrụ?
systemd bụ ọrụ ọzọ na njikwa sistemu nke ọtụtụ nkesa Linux na-anabata. Ọ na-achọ ikwe ka a na-emekwu nhazi n'otu oge n'oge mmalite usoro (n'adịghị ka sysvinit, nke na-emekarị ka ọ dị nwayọọ n'ihi na ọ na-amalite usoro otu n'otu oge, na-enyocha ma otu ọ dabere na nke ọzọ, ma na-echere. daemons ịmalite ka ọrụ ndị ọzọ nwee ike ịmalite), yana ije ozi dị ka njikwa akụrụngwa dị ike na sistemụ na-agba ọsọ.
Ya mere, a na-amalite ọrụ mgbe ọ dị mkpa (iji zere iji usoro ihe eji eme ihe) kama ịmalite na-enweghị ihe kpatara ya n'oge buut.
Ilele ọkwa nke usoro niile na-agba na sistemụ gị, ma systemd nke ala yana ọrụ SysV, mee iwu na-esonụ.
# systemctl
Kọlụm LOAD na-egosi ma nkọwa otu ( rụtụ aka na kọlụm UNIT, nke na-egosi ọrụ ahụ ma ọ bụ ihe ọ bụla nke sistemu na-edobere) ka ebugoro nke ọma, ebe ACTIVE na SUB kọlụm na-egosi ọnọdụ otu nkeji dị ugbu a.
Mgbe kọlụm ACTIVE na-egosi na ọkwa otu nkeji abụghị ọrụ, anyị nwere ike ịlele ihe mere site na iji.
# systemctl status [unit]
Dịka ọmụmaatụ, na onyonyo dị n'elu, media-samba.mount nọ n'ọnọdụ dara ada. Ka anyị gbaa ọsọ.
# systemctl status media-samba.mount
Anyị nwere ike ịhụ na media-samba.mount dara n'ihi na usoro mgbago na onye ọbịa dev1 enweghị ike ịhụ oke netwọkụ na //192.168.0.10/gacanepa.
Ịmalite ma ọ bụ kwụsị ọrụ
Ozugbo netwọk na-ekesa //192.168.0.10/gacanepa dị, ka anyị gbalịa ịmalite, kwụsịchaa, n'ikpeazụ malitegharịa unit media-samba.mount. Mgbe emechara omume ọ bụla, ka anyị gbaa systemctl status media-samba.mount ka ịlele ọkwa ya.
# systemctl start media-samba.mount # systemctl status media-samba.mount # systemctl stop media-samba.mount # systemctl restart media-samba.mount # systemctl status media-samba.mount
N'okpuru systemd ị nwere ike ịme ma ọ bụ gbanyụọ ọrụ mgbe ọ na-akpụ akpụ.
# systemctl enable [service] # enable a service # systemctl disable [service] # prevent a service from starting at boot
Usoro nke inye ma ọ bụ gbanyụọ ọrụ ịmalite na-akpaghị aka na buut gụnyere ịgbakwunye ma ọ bụ wepụ njikọ ihe atụ na /etc/systemd/system/multi-user.target.wants directory.
N'aka nke ọzọ, ịnwere ike iji iwu ahụ chọpụta ọnọdụ ọrụ ugbu a (enyere ma ọ bụ nwee nkwarụ).
# systemctl is-enabled [service]
Ọmụmaatụ,
# systemctl is-enabled postfix.service
Na mgbakwunye, ị nwere ike ịmalitegharị ma ọ bụ mechie sistemụ na.
# systemctl reboot # systemctl shutdown
Bido
Upstart bụ ihe ngbanwe dabere na mmemme maka /sbin/init daemon wee mụọ ya site na mkpa ịmalite ọrụ naanị, mgbe achọrọ ha (na-elekọtakwa ha mgbe ha na-agba ọsọ), ma na-ejikwa ihe omume ka ha na-eme, si otú a na-akarị usoro sysvinit dabere na kpochapụwo.
Emebere ya na mbu maka nkesa Ubuntu, mana ejiri ya na Red Hat Enterprise Linux 6.0. N'agbanyeghị na e bu n'obi ka ọ dị mma maka ntinye na nkesa Linux niile ka ọ bụrụ nnọchi maka sysvinit, ka oge na-aga systemd kpuchiri ya. Na February 14, 2014, Mark Shuttleworth (onye guzobere Canonical Ltd.) kwupụtara na mwepụta Ubuntu n'ọdịnihu ga-eji systemd dị ka init daemon ndabara.
N'ihi na SysV edemede mmalite maka sistemụ bụ ihe a na-ahụkarị kemgbe ogologo oge, ọtụtụ ngwugwu ngwanrọ gụnyere scripts mmalite SysV. Iji nabata ngwugwu ndị dị otú ahụ, Upstart na-enye ọnọdụ ndakọrịta: Ọ na-eme scripts mmalite SysV na ebe a na-emebu (/etc/rc.d/rc?.d, /etc/init.d/ rc?.d, /etc/rc?.d, ma ọ bụ ebe yiri ya). Ya mere, ọ bụrụ na anyị wụnye ngwugwu nke na-agụnyebeghị edemede nhazi Upstart, ọ ka kwesịrị ịmalite n'ụzọ ọ na-adị.
Ọzọkwa, ọ bụrụ na anyị arụnyela akụrụngwa dị ka chkconfig, ị ga-enwe ike iji ha jikwaa ọrụ dabere na SysV dị ka anyị ga-esi na sistemụ sysvinit.
Ederede Upstart na-akwado ịmalite ma ọ bụ kwụsị ọrụ dabere na omume dịgasị iche iche karịa nke SysV mmalite script; dịka ọmụmaatụ, Upstart nwere ike ịmalite ọrụ mgbe ọ bụla etinyere otu ngwaike ngwaọrụ.
Usoro nke na-eji Upstart na scripts obodo ya na-eji .conf dochie faịlụ /etc/inittab yana runlevel-kpọmkwem SysV akwụkwọ ndekọ aha mmalite. scripts dị na ndekọ /etc/init.
Edemede *.conf (a makwaara dị ka nkọwa ọrụ) nwere ihe ndị a:
- Nkọwa nke usoro a.
- Nhazi ọkwa ebe usoro kwesịrị ịga ma ọ bụ mmemme kwesịrị ịkpalite ya.
- Ọkwa ọkwa ebe ekwesịrị ịkwụsị usoro ma ọ bụ mmemme kwesịrị ịkwụsị ya.
- Nhọrọ.
- Iwu ka ịmalite usoro a.
Ọmụmaatụ,
# My test service - Upstart script demo description "Here goes the description of 'My test service'" author "Dave Null <[email >" # Stanzas # # Stanzas define when and how a process is started and stopped # See a list of stanzas here: http://upstart.ubuntu.com/wiki/Stanzas#respawn # When to start the service start on runlevel [2345] # When to stop the service stop on runlevel [016] # Automatically restart process in case of crash respawn # Specify working directory chdir /home/dave/myfiles # Specify the process/command (add arguments if needed) to run exec bash backup.sh arg1 arg2
Iji tinye mgbanwe, ị ga-achọ ịgwa upstart ka ibugharịa nhazi ya.
# initctl reload-configuration
Mgbe ahụ malite ọrụ gị site na ịpị iwu na-esonụ.
$ sudo start yourjobname
Ebe Yourjobname bụ aha ọrụ agbakwunyere na mbụ na yourjobname.conf script.
Ntuziaka ntụaka zuru oke na nkọwa zuru ezu maka Upstart dị na webụsaịtị ọrụ a n'okpuru menu \Akwụkwọ nri.
Nchịkọta
Ọmụma nke usoro buut Linux dị mkpa iji nyere gị aka na ọrụ nchọpụta nsogbu yana imeghari arụmọrụ kọmputa na ọrụ na-arụ ọrụ na mkpa gị.
N'isiokwu a, anyị enyochala ihe na-eme site na oge ị pịa Ike ịgbanwee ka ịgbanwuo igwe ruo mgbe ị nwetara interface ọrụ zuru oke. Enwere m olileanya na ị mụtala ịgụ ya dịka m gụrụ mgbe m na-etinye ya ọnụ. Enwere onwe gị ịhapụ nkwupụta ma ọ bụ ajụjụ gị n'okpuru. Anyị na-atụ anya ịnụ n'aka ndị na-agụ akwụkwọ anyị!