Jinsi ya kuwezesha au kulemaza huduma?


Nenda kwa jibu lililokubaliwa


Nilisoma juu ya jinsi ya kuwezesha na kulemaza huduma katika Ubuntu na inaonekana kwamba kuna uwezekano tofauti wa kuzisimamia.

Njia ya kwanza nilipata ni update-rc.d kuongeza huduma mpya kuanza, ambayo inalenga kwenye /etc/init.d folda na yaliyomo.

Nyingine niliyoipata ni kuhariri .conf faili kwenye /etc/init folda.

Ni ipi njia inayopendekezwa ya kuwezesha / kulemaza / kuongeza huduma na kwa nini?

Unaweza tafadhali kupeana maelezo mafupi kwa hatua kwa mfano juu ya jinsi ya kuongeza huduma katika Ubuntu na kuiwezesha na kuizima?


832





2010-12-29




Idadi ya majibu: 8


Kuna huduma ambazo zinaweza kuwezeshwa / kulemazwa kwa kutumia GUI (kama startup programu) au terminal.

Kwa terminal unayo chaguzi kadhaa. Kwanza, fungua terminal (Chapa "terminal" kwenye upele, kwa mfano, na uifungue). Halafu:

Huduma za uwezeshaji za muda mfupi

Kusimamisha na kuanza huduma kwa muda (Haiwawezeshi / kuwazima kwa buti zajayo), unaweza kuandika service SERVICE_NAME [action] . Kwa mfano:

  • sudo service apache2 stop (Je! Wacha huduma ya Apache hadi Reboot au uanze tena).

  • sudo service apache2 start ( Utaanza huduma ya Apache kudhani ilikuwa imesimamishwa hapo awali.).

  • service apache2 status (Atakuambia STATUS ya huduma, ikiwa imewezeshwa / kukimbia kwa walemavu / HAKUNA kukimbia.).

  • sudo service apache2 restart (Je! Rudisha huduma. Hii inatumika sana wakati umebadilika, faili ya usanidi. Katika kesi hii, ikiwa umebadilisha usanidi wa PHP au usanidi wa Apache. Anzisha upya utakuokoa kutokana na kuacha / kuanza na mistari 2 ya amri) )

  • service apache2 (Katika kesi hii, kwa kuwa haukutaja ACTION kutekeleza kwa huduma hiyo, itakuonyesha chaguzi zote zinazopatikana kwa huduma hiyo.) Sehemu hii inatofautiana kulingana na huduma, kwa mfano, na MySQL ingetaja tu kwamba inakosa parameta. Kwa huduma zingine kama huduma ya mitandao ingetaja orodha ndogo ya chaguzi zote zinazopatikana.


SYSTEMD

Kuanzia na Ubuntu 15.04, Upstart itaondolewa kwa niaba ya Systemd. Pamoja na Systemd kusimamia huduma tunaweza kufanya zifuatazo (kupitia systemctl action SERVICE muundo):

systemctl start SERVICE - Itumie kuanza huduma. Haiendelei baada ya kuanza upya

systemctl stop SERVICE - Itumie kukomesha huduma. Haiendelei baada ya kuanza upya

systemctl restart SERVICE - Itumie kuanza tena huduma

systemctl reload SERVICE - Ikiwa huduma inaiunga mkono, itapakia tena faili za usanidi zinazohusiana nayo bila kusumbua mchakato wowote unaotumia huduma.

systemctl status SERVICE - Inaonyesha hali ya huduma. Huelezea ikiwa huduma inaendelea sasa.

systemctl enable SERVICE - Washa huduma, kwenye kuwasha tena au kwenye hafla inayofuata ya kuanza. Inaendelea baada ya kuanza tena.

systemctl disable SERVICE - Zima huduma kwenye reboot inayofuata au hafla ya kusimama inayofuata. Inaendelea baada ya kuanza tena.

systemctl is-enabled SERVICE - Angalia ikiwa huduma imesanikishwa kwa sasa kuanza au sio kwenye kuanza tena.

systemctl is-active SERVICE - Angalia ikiwa huduma iko sasa kazi.

systemctl show SERVICE - Onyesha habari zote kuhusu huduma.

sudo systemctl mask SERVICE - Lemaza huduma kabisa kwa kuiunganisha /dev/null ; huwezi kuanza huduma kwa mikono au kuiwezesha huduma hiyo.

sudo systemctl unmask SERVICE - Huondoa kiunga /dev/null na kurejesha uwezo wa kuwezesha na au kuanza mikono kwa huduma.


UPSTART (Imepungua tangu 15.04)

Ikiwa tunataka kutumia njia rasmi ya Upstart (Kumbuka kuwa, kwa sasa, sio huduma zote zilizobadilishwa kuwa Upstart), tunaweza kutumia amri zifuatazo:

status SERVICE - Hii itatuambia ikiwa huduma iliyogeuzwa inaendeshwa au la. Kumbuka kuwa hii imepingwa katika neema ya start , stop , status na restart . Pia itatuambia ikiwa huduma bado haijabadilishwa kuwa ya kwanza:

Huduma iliyobadilishwa kawaida inaweza kutoa hali ya sasa (Kuanza, Kuendesha, Kusimamisha ...) na kitambulisho cha mchakato. Huduma isiyo yaongoka inaweza kutoa kosa kuhusu kazi isiyojulikana .

Njia za mkato zinaweza kufanya kazi na service amri hapo juu lakini sio na amri zilizo chini isipokuwa zimebadilishwa 100% kuwa huduma za mwanzo:

  • Start - sudo start mysql

  • STOP - sudo stop mysql

  • RESTART - sudo restart mysql

  • STATUS - sudo status smbd

Kuwezesha / kulemaza huduma

Ili kubadilisha huduma kutoka kuanza au kuacha kabisa utahitaji:

 echo manual | sudo tee /etc/init/SERVICE.override
 

ambapo stanza manual itaacha Upstart kutoka upakiaji huduma kiotomatiki kwenye buti inayofuata. Huduma yoyote iliyo na .override mwisho itachukua kipaumbele juu ya faili ya huduma ya asili. Utaweza kuanza huduma tu baadaye. Ikiwa hautaki hii basi futa tu .override . Kwa mfano:

 echo manual | sudo tee /etc/init/mysql.override
 

Itaweka huduma ya MySQL kuwa manual modeli. Ikiwa hautaki hii, baadaye unaweza tu kufanya

 sudo rm /etc/init/mysql.override
 

na Reboot ili huduma ianze kiotomatiki tena. Kwa kweli kuwezesha huduma, njia ya kawaida ni kwa kuiweka. Ikiwa utasakilisha Apache, Nginx, MySQL au wengine, wataanza moja kwa moja kwenye ufungaji wa kumaliza na wataanza kila wakati buti za kompyuta. Kulemaza, kama ilivyotajwa hapo juu, itatumia huduma hiyo manual .


847


2010-12-29

Hivi sasa kuna njia tatu tofauti za programu kuanza kama huduma huko Ubuntu, SysV , Upstart na systemd . Huduma hufafanuliwa hapa kama programu inayoendeshwa na mfumo wa nyuma, tofauti na ile iliyoanza na inayoendeshwa moja kwa moja na mtumiaji.

SysV

Njia ya jadi ya kuanza huduma katika Linux ilikuwa kuweka hati ndani /etc/init.d , na kisha kutumia update-rc.d amri (au kwa msingi wa RedHat, chkconfig ) kuiwezesha au kuizima.

Amri hii hutumia mantiki ngumu ngumu kuunda symlink in /etc/rc#.d , ambayo inadhibiti agizo la kuanza huduma. Ukikimbia ls /etc/rc2.d unaweza kuona agizo kwamba huduma zitauawa na jina la faili kama K##xxxx na kuanza na majina ya faili S##xxxx . ## Katika S##xxxx maana yake ni "mwanzo ili" kwa ajili ya huduma ya xxxx . Kinyume chake, ## kwa K##xxxx njia ina maagizo ya kuua kwa huduma xxxx .

Suala moja kubwa na SysV ni kwamba wakati wa kuzidisha mfumo, kila kitu kilipaswa kufanywa kwa siri, jambo moja baada ya jingine, kufanya nyakati za mfumo wa Boot polepole kweli . Jaribio lilifanywa kulinganisha hii, lakini walikuwa haphazard na ngumu kuchukua faida kamili. Hii ilikuwa sababu kuu kwamba Upstart aliundwa.

Upstart

Upstart hutumia faili za ufafanuzi wa kazi /etc/init kufafanua ni huduma gani inapaswa kuanza. Kwa hivyo, wakati mfumo unakua, nyongeza michakato ya matukio kadhaa, na kisha inaweza kuanza huduma nyingi sambamba. Hii inawaruhusu kutumia kikamilifu rasilimali za mfumo, kwa mfano, kwa kuanzisha huduma iliyofungwa kwa diski wakati huduma nyingine iliyofungwa na CPU inaendesha, au wakati mtandao unangojea anwani ya IP yenye nguvu itakayopewa.

Unaweza kuona faili zote za kazi za mwanzo kwa kukimbia ls /etc/init/*.conf

Wacha wacha tu hapa nikuseme kwamba ikiwa haujui ni huduma gani, au inafanya nini, USIKUZE!

Sio huduma zote zilizobadilishwa kuwa za mwanzo. Wakati nilikuwa nikifanya kazi kwenye timu ya seva huko Canonical kwa miezi michache iliyopita, nimefanya kazi kwenye faili kadhaa za kazi zilizobadilishwa, na sehemu nzuri ni kwamba inaruhusu mtu kujiondoa maandishi yote "kichawi" na kuweka tu amri chache hapa na pale kufafanua hasa jinsi ya kuanza huduma, na hakuna zaidi. Lakini kwa sasa, ni wachache tu wa huduma za mtandao wa jadi, kama squid na samba , wamebadilishwa.

Je! Huduma ina msingi-msingi?

Ili kugundua ikiwa huduma ni ya msingi, unaweza kuendesha amri ya hali:

 status servicename
 

Ikiwa ni kazi ya mwanzo , itaonyesha hii:

 $ status statd
statd start/running, process 942
 

Lakini ikiwa sivyo, utaona kitu kingine zaidi kama hiki:

 $ status apache2
status: Unknown job: apache2
 

Katika kesi hii, haijabadilishwa apache2 kuwa mwanzo . Kwa hivyo, kuzima apache2 unaendesha tu

 sudo update-rc.d apache2 disable
sudo service apache2 stop
 

Lemaza huduma (kazi) katika mwanzo

Ufafanuaji wa kazi ya juu hauna update-rc.d amri. Ili kuzima kazi, unahitaji hariri faili ya kazi moja kwa moja ili kuizima. Kuna njia mbili za kufanya hivyo.

Ikiwa unataka bado kuweza kuianzisha kwa mikono, basi unahitaji kutoa maoni kuhusu start on hali hiyo. Sema unataka kufunga samba , lakini sio lazima ianze moja kwa moja. Hapa kuna faili ya kazi (kwa asili):

 description "SMB/CIFS File Server"
author      "Steve Langasek <[email protected]>"

start on local-filesystems
stop on runlevel [!2345]

respawn

pre-start script
    RUN_MODE="daemons"

    [ -r /etc/default/samba ] && . /etc/default/samba

    [ "$RUN_MODE" = inetd ] && { stop; exit 0; }

    install -o root -g root -m 755 -d /var/run/samba
end script

exec smbd -F
 

Kulemaza samba , unaweza tu kuweka # mbele ya " start on local-filesystems ". Kumbuka kuwa wakati haitaanza kushughulikia buti, bado unahitaji kuizuia wakati huu na

 sudo service smbd stop
 

Ikiwa, hata hivyo, hautaki samba kuanza, ningependekeza uondoe kabisa kifurushi. Ikiwa, hata hivyo, unataka imewekwa, lakini sio kuanza, unaweza pia kufanya:

 mv /etc/init/smbd.conf /etc/init/smbd.conf.disabled
 

Lemaza huduma inayotumia kuanza / kusimamisha stanza (tarehe 11.04)

Kuanzia na toleo la upstart kwamba itakuwa katika 11.04, kuna keyword mpya ambayo Hulemaza start on na stop on stanza: manual . Kwa hivyo njia nyingine ya kuzima huduma kama ya 11.04 ni kufanya:

 echo 'manual' | sudo tee /etc/init/mysql.override

# command from root shell
echo manual >> /etc/init/mysql.override
 

Unaweza kuunda override faili kuzuia huduma bila kuhariri ufafanuzi wa kazi kabisa, kwa kuweka tu manual neno la msingi ndani yake.


357


2011-01-06

sysv-rc-conf

Jaribu kutumia sysv-rc-conf

 sudo apt-get install sysv-rc-conf
 

na kuanza kusimamia huduma, kutekeleza

 sudo sysv-rc-conf
 

Ambayo italeta windows inayoingiliana kama hii


ingiza maelezo ya picha hapa

Unaweza kuzunguka kupitia kurasa kutumia Ctrl+n kwa ukurasa unaofuata na Ctrl+p kwa ukurasa uliopita. Unaweza kuwezesha na kulemaza huduma kwa kuchagua SPACE kwenye runlevel za taka.

Kazi-Usimamizi

Njia nyingine inaweza kuwa Kazi-Usimamizi kwa kusanidi kupitia

 sudo apt-get install jobs-admin
 

Ambayo pia hutoa GUI kama hii


hakiki ya kazi-admin

Kwa kuonyesha kazi zaidi, lazima uwe Jibu Kazi za Kulinda kutoka kwa menyu yake.

chkconfig

Na chaguo la tatu itakuwa chkconfig ,

 sudo apt-get install chkconfig
 

Inaweza kutumiwa kupitia CLI chkconfig , kuonyesha orodha ya kazi za On / Off. Pia tunaweza kuona huduma za mfumo kwa kutumia chkconfig –list

Huduma zinaweza kuwashwa kwa kutumia

 chkconfig <service> on
 

Huduma zinaweza kuzimwa kwa kutumia

 chkconfig <service> off
 

Na tunaweza kuongeza huduma yetu wenyewe, kwa kutumia hati sahihi ya init na vichwa sahihi.

 chkconfig --add <service>
 

sasisha-rc.d

Na chaguo jingine linaweza kutajwa hapa sasisha-rc.d , imeelezwa kwa kifupi hapa .

Kumbuka kuwa kwa Ubuntu Server 12.04, update-rc.d hutumiwa badala ya chkconfig.


129


2012-06-28

Kwa wale ambao tunaendesha Ubuntu juu ya ssh, nadhani chaguo nzuri ni rcconf - mpango wa msingi wa maandishi:

 sudo apt-get install rcconf
sudo rcconf
 


maandishi ya alt

Nenda na funguo za kichupo na mshale, bonyeza vyombo vya habari nafasi kuwezesha / kulemaza. Mabadiliko yanaendelea wakati wote wa kuanza tena.

Picha ya skrini iliyokopwa kutoka kwa blokupost hii , ambayo pia inaonyesha sysv-rc-conf - zana inayofanana ambayo hukuruhusu pia kuweka runlevel. (Kwa wale wanaotokea kujali vya kutosha juu ya runlevels wanataka kuzibadilisha :)

Kwa bahati mbaya, rcconf haifanyi kazi na huduma ya juu (huduma zilizoorodheshwa /etc/init/* ), tu na utaratibu wa jadi ( ls -l /etc/init.d/* - zile ambazo sio viungo vya mfano).

Kwa bahati nzuri, huduma nyingi ambazo zinafaa wakati unapoingia kwenye seva (Apache, Tomcat, mdadm, mteja wa boinc ...) bado hazijahamishwa ili kuanza kazi.


48


2011-01-06

Niligundua kuwa kuna zana hii ya GUI, kitu kama BUM lakini inaendana na Upstart:

  • Kazi-Usimamizi

     sudo apt-get install jobs-admin
     

18


2012-05-21

Kuhariri faili ya usanidi iliyopo (kama ilivyoelezewa hapo juu) sio wazo nzuri. Kifurushi kilichosasishwa kinaweza kutoa usanidi uliosasishwa, na itabidi kurudia mabadiliko yako mara kwa mara.

Kwa kuangalia man 5 init moja utapata suluhisho linalofaa zaidi: kutumia kiboreshaji kisanidi. Mfano mfupi: Sema tuna huduma inayoitwa "foobar", kwa hivyo kungekuwa na faili inayoitwa /etc/init/foobar.conf na usanidi wake wa mwanzo. Sasa hautaki kuondoa faili hiyo, au kuibadilisha - lakini pia hutaki huduma hii kuendeshwa? Hivyo kuweka ubatilishaji faili kando yake: /etc/init/foobar.override , zenye (hiari header kwa maelezo na) badala start on / stop on mistari kuweka sambamba na neno moja: manual . Njia hii unamwambia mwanzilishi kutumia kimsingi kutumia foobar.conf , lakini akifafanua ufafanuzi wa kuanza kuanza huduma hiyo wakati tu utatekelezwa kwa mikono (kupitia service foobar start katika mfano wetu).


12


2012-06-30

Kuna pia Meneja wa Boot-Up .

Kufunga: sudo apt-get install bum

Maelezo zaidi: http://www.marzocca.net/linux/bum.html


ingiza maelezo ya picha hapa


8


2014-05-20

Ninatumia Stacer. Inaonyesha huduma na michakato pia. Sanduku kamili la mfumo wa GUI. https://github.com/oguzhaninan/Stacer


2


2019-01-08