Kif tibdel il-parametri tar-runtime tal-kernel b'mod persistenti u mhux persistenti


Fil-Parti 13 ta 'dan kif tuża GRUB biex timmodifika l-imġieba tas-sistema billi tgħaddi għażliet lill-kernel għall-proċess tal-ibbutjar kontinwu.

Bl-istess mod, tista 'tuża l-linja tal-kmand f'sistema Linux li taħdem biex tbiddel ċerti parametri tal-kernel tar-runtime bħala modifika ta' darba, jew b'mod permanenti billi teditja fajl ta 'konfigurazzjoni.

Għalhekk, inti tista 'tippermetti jew tiddiżattiva parametri tal-kernel on-the-fly mingħajr ħafna diffikultà meta jkun meħtieġ minħabba bidla meħtieġa fil-mod kif is-sistema hija mistennija li topera.

Introduzzjoni tal-/proc Filesystem

L-aħħar speċifikazzjoni tal-Istandard tal-Ġerarkija tas-Sistema tal-Fajles tindika li /proc tirrappreżenta l-metodu default għall-immaniġġjar tal-informazzjoni dwar il-proċess u s-sistema kif ukoll informazzjoni oħra dwar il-kernel u l-memorja. B'mod partikolari, /proc/sys huwa fejn tista' ssib l-informazzjoni kollha dwar it-tagħmir, is-sewwieqa, u xi karatteristiċi tal-kernel.

L-istruttura interna attwali ta' /proc/sys tiddependi ħafna fuq il-kernel li qed jintuża, iżda x'aktarx issib id-direttorji li ġejjin ġewwa. Min-naħa tagħhom, kull wieħed minnhom se jkun fih sottodirettorji oħra fejn jinżammu l-valuri għal kull kategorija ta’ parametru:

  1. dev: parametri għal apparati speċifiċi konnessi mal-magna.
  2. fs: konfigurazzjoni tas-sistema tal-fajls (kwoti u inodes, pereżempju).
  3. kernel: konfigurazzjoni speċifika għall-kernel.
  4. net: konfigurazzjoni tan-netwerk.
  5. vm: użu tal-memorja virtwali tal-kernel.

Biex timmodifika l-parametri tar-runtime tal-kernel se nużaw il-kmand sysctl. In-numru eżatt ta' parametri li jistgħu jiġu modifikati jista' jitqies bi:

# sysctl -a | wc -l

Jekk trid tara l-lista kompleta tal-parametri Kernel, agħmel biss:

# sysctl -a 

Peress li l-output tal-kmand ta 'hawn fuq se jikkonsisti minn ĦAFNA ta' linji, nistgħu nużaw pipeline segwit minn inqas biex nispezzjonawh b'aktar attenzjoni:

# sysctl -a | less

Ejja nagħtu ħarsa lejn l-ewwel ftit linji. Jekk jogħġbok innota li l-ewwel karattri f'kull linja jaqblu mal-ismijiet tad-direttorji ġewwa /proc/sys:

Pereżempju, il-linja enfasizzata:

dev.cdrom.info = drive name:        	sr0

jindika li sr0 huwa alias għad-drajv ottiku. Fi kliem ieħor, hekk il-qalba \jara dak is-sewqan u juża dak l-isem biex jirreferi għalih.

Fit-taqsima li ġejja se nispjegaw kif nibdlu parametri oħra tar-runtime tal-kernel aktar importanti fil-Linux.

Kif tibdel jew timmodifika l-parametri tar-runtime tal-kernel tal-Linux

Ibbażat fuq dak li spjegajna s'issa, huwa faċli li wieħed jara li l-isem ta 'parametru jaqbel mal-istruttura tad-direttorju ġewwa /proc/sys fejn jista' jinstab.

Pereżempju:

dev.cdrom.autoclose → /proc/sys/dev/cdrom/autoclose
net.ipv4.ip_forward → /proc/sys/net/ipv4/ip_forward

Cela dit, nistgħu naraw il-valur ta 'parametru tal-kernel Linux partikolari billi tuża jew sysctl segwit mill-isem tal-parametru jew naqraw il-fajl assoċjat:

# sysctl dev.cdrom.autoclose
# cat /proc/sys/dev/cdrom/autoclose
# sysctl net.ipv4.ip_forward
# cat /proc/sys/net/ipv4/ip_forward

Biex nissettjaw il-valur għal parametru tal-qalba nistgħu nużaw ukoll sysctl, iżda nużaw l-għażla -w u segwita mill-isem tal-parametru, is-sinjal ugwali, u l-valur mixtieq.

Metodu ieħor jikkonsisti fl-użu ta' echo biex jissostitwixxi l-fajl assoċjat mal-parametru. Fi kliem ieħor, il-metodi li ġejjin huma ekwivalenti biex jiskonnettjaw il-funzjonalità ta' twassil tal-pakketti fis-sistema tagħna (li, bil-mod, għandu jkun il-valur default meta kaxxa ma tkunx suppost tgħaddi t-traffiku bejn in-netwerks):

# echo 0 > /proc/sys/net/ipv4/ip_forward
# sysctl -w net.ipv4.ip_forward=0

Huwa importanti li wieħed jinnota li l-parametri tal-kernel li huma ssettjati bl-użu ta’ sysctl se jiġu infurzati biss matul is-sessjoni attwali u jisparixxu meta s-sistema terġa’ tiġi startjata.

Biex tissettja dawn il-valuri b'mod permanenti, editja /etc/sysctl.conf bil-valuri mixtieqa. Pereżempju, biex tiddiżattiva t-twassil tal-pakketti f'/etc/sysctl.conf kun żgur li din il-linja tidher fil-fajl:

net.ipv4.ip_forward=0

Imbagħad ħaddem il-kmand li ġej biex tapplika l-bidliet għall-konfigurazzjoni tat-tħaddim.

# sysctl -p

Eżempji oħra ta’ parametri importanti tar-runtime tal-kernel huma:

fs.file-max jispeċifika n-numru massimu ta' mankijiet tal-fajls li l-kernel jista' jalloka għas-sistema. Skont l-użu maħsub tas-sistema tiegħek (web/database/file server, biex insemmu ftit eżempji), tista 'tkun trid tibdel dan il-valur biex tissodisfa l-ħtiġijiet tas-sistema.

Inkella, inti tirċievi messaġġ ta 'żball \Wisq fajls miftuħa fl-aħjar, u tista' tipprevjeni li s-sistema operattiva tibda fl-agħar.

Jekk minħabba żball innoċenti ssib ruħek f'din l-aħħar sitwazzjoni, ibda fil-modalità ta' utent wieħed (kif spjegat fil-Parti 14 – Monitor u Issettja l-Użu tal-Limit tal-Proċess Linux ta 'din is-serje.

kernel.sysrq jintuża biex jippermetti ċ-ċavetta SysRq fit-tastiera tiegħek (magħrufa wkoll bħala ċ-ċavetta tal-iskrin tal-istampar) sabiex tippermetti li ċerti kombinazzjonijiet ta’ ċwievet jinvokaw azzjonijiet ta’ emerġenza meta s-sistema ma tkunx qed tirreaġixxi.

Il-valur default (16) jindika li s-sistema se tonora l-kombinazzjoni Alt+SysRq+key u twettaq l-azzjonijiet elenkati fid-dokumentazzjoni sysrq.c misjuba f'kernel.org (fejn iċ-ċavetta hija ittra waħda fil- medda b-z). Pereżempju, Alt+SysRq+b se jerġa' jibda s-sistema bil-qawwa (uża dan bħala l-aħħar għażla jekk is-server tiegħek ma jirrispondix).

Twissija! Tippruvax tagħfas din il-kombinazzjoni ta' ċwievet fuq magna virtwali għax tista' ġġiegħel is-sistema ospitanti tiegħek terġa' tibda!

Meta ssettjat għal 1, net.ipv4.icmp_echo_ignore_all jinjora t-talbiet ping u jwaqqagħhom fil-livell tal-kernel. Dan jidher fl-immaġni hawn taħt - innota kif it-talbiet ping jintilfu wara li jiġi stabbilit dan il-parametru tal-kernel:

Mod aħjar u eħfef biex jiġu stabbiliti parametri ta' runtime individwali huwa l-użu ta' fajls .conf ġewwa /etc/sysctl.d, billi tiġborhom skont il-kategoriji.

Pereżempju, minflok ma nissettjaw net.ipv4.ip_forward=0 u net.ipv4.icmp_echo_ignore_all=1 f'/etc/sysctl.conf, nistgħu noħolqu fajl ġdid bl-isem net.conf ġewwa /etc/ sysctl.d:

# echo "net.ipv4.ip_forward=0" > /etc/sysctl.d/net.conf
# echo "net.ipv4.icmp_echo_ignore_all=1" >> /etc/sysctl.d/net.conf

Jekk tagħżel li tuża dan l-approċċ, tinsiex tneħħi dawk l-istess linji minn /etc/sysctl.conf.

Sommarju

F'dan l-artikolu spjegajna kif timmodifika l-parametri tar-runtime tal-kernel, kemm persistenti kif ukoll b'mod mhux persistenti, billi tuża sysctl, /etc/sysctl.conf, u fajls ġewwa /etc/sysctl.d.

Fid-doks sysctl tista' ssib aktar informazzjoni dwar it-tifsira ta' aktar varjabbli. Dawk il-fajls jirrappreżentaw l-aktar sors komplut ta' dokumentazzjoni dwar il-parametri li jistgħu jiġu stabbiliti permezz ta' sysctl.

Dan l-artiklu sibt utli? Żgur nittamaw li għamilt. Toqgħodx taħsibha biex tgħarrafna jekk għandek xi mistoqsijiet jew suġġerimenti biex ittejjeb.