Sei sulla pagina 1di 18

9.4.

Gestindeservicios
17 agosto, 2013 by P. Ruiz in Sistemas Operativos en Red

Losservicios,tambinllamadosdemoniosenlaterminologaUnix,son
programasqueseejecutanensegundoplanoparaofrecerunafuncin
concretadeformaindependientedelusuarioquepuedainiciarsesinenel
sistema.
Existenserviciosquemonitorizanelsistema,quecompruebansiexisten
actualizacionespendientesdeinstalar,quecontrolanelrelojdelsistemaylo
actualizanatravsdelaredcuandoseanecesario,quegestionanlaconexin
deredyavisancuandoalgonovabien,etc.
Enlasiguientetablaseincluyenalgunosdelosserviciosmsfrecuentesen
Linux:

Tambinesfrecuenteencontrarserviciosquenoestnrelacionadosconel
funcionamientodelpropiosistema,sinoconlafuncionalidadquesteofrecea
equiposcliente.Enestacategoraseencuentranlossiguientes:

Buscar...

AunqueenunsistemaLinuxenfuncionamientoexistenmultituddeservicios
enejecucin,suadministracinesrelativamentesencilla.Slohabrque
saberdndeseencuentranycmogestionarlos(iniciarlos,reiniciarlos,
pararlos,etc).

Gestionarlosservicios
Cuandoseinstalaunprogramaque
llevaasociadoalgnservicio(comoel
servidordeimpresinCUPSoel
servidorwebApache),elprocesode

Enotrasdistribucionesla

instalacinguardaeneldirectorio

carpetapuedeser

/etc/init.delscriptnecesariopara

/etc/rc.d/init.d.

controlarlo.Estoocurretambincon
losserviciospropiosdelsistema
operativo.
Enresumidascuentas,loqueestosignificaesqueenlacarpeta/etc/init.d
seencuentrantodoslosscriptsqueseutilizanparaadministrarlosservicios
quepuedenejecutarseenUbuntu.
Elnmerodearchivosalmacenadosdependerdelasfuncionesparalasque
estconfiguradoelsistemaydelosdispositivoshardwareinstalados.

Contenidodelacarpeta

/etc/init.d.

Estosscriptsseprogramandemodoquereconozcanlossiguientes
argumentos:
start:Permiteiniciarunserviciodeformamanual.Porejemplo,para
iniciarelserviciovboxaddescribiremoslasiguienteorden:
sudo/etc/init.d/vboxaddstart

Elscriptdevuelveunmensaje
indicandosilaaccinseha
completadoconxito

stop:Permitedetenerunservicioqueseestejecutandoenestos
momentos.Porejemplo,paradetenerelservicioanterior,escribiremos
losiguiente:
sudo/etc/init.d/vboxaddstop

vboxaddesunservicioqueno
puededetenersey,cuandolo

intentamos,nosdevuelveun
error

restart:Equivalearealizarlasdosoperacionesanteriores.Primero
detieneelservicioydespusloinicia.Parareiniciarelservicioanterior,
escribimosesto:
sudo/etc/init.d/vboxaddrestart

Comoyaimaginabas,volvemos
aobtenerelmismoerrorque
antes,porque,denuevo,noha
podidodetenerse.

status:Nospermiteconsultarelestadoenelqueseencuentraun
servicio.Paracomprobarlo,slotenemosqueescribirlosiguiente:
sudo/etc/init.d/vboxaddstatus

Ascomprobamosqueelservicio
seestejecutando.

Desdelaversin9.10deUbuntu,comenzaimplantarseUpstartcomo
sustitutodelservicioinit,queesquienseencargadeiniciarlosservicios
duranteeliniciodelsistema,detenerloscuandoapagamosycontrolarsu
funcionamientomientrasestnactivos.
LaventajadeUpstartesquecontrolalosserviciosatendiendoasuseventos,
loquelepermiteaumentarsurendimiento.
Elinconvenientedetodoestoesque,dentrode/etc/init.d,ademsdelos
scriptstradicionalespodemosencontrarlosUpstartjobs(otareasUpstart,
enespaol).As,siintentamosaplicarconalgunosserviciosloqueacabamos
deaprender,podemosencontrarnosconunerrorcomoeldelaimagen
siguiente:

Elscriptcronhasidoconvertidoen
unUpstartjob.

Paraverelestadodeestetipodeservicios,podemosutilizarelcomando
initctllist.

Deestaformaobtenemoslalista
completadelosserviciosquese
estnejecutandoenelsistema.

Paraobtenerinformacinreferenteaunservicioconcreto,podemoscanalizar
lasalidaatravsdelcomandogrep:

initctllist|grepcron

Enestecaso,tambinapareceel
comandoanacronporquecoincide
conlabsqueda.

Adems,realizaremoslagestindeserviciosUpstartconlossiguientes
comandos:

start:Permiteiniciarlaejecucindeunservicio.Porejemplo,para
iniciarelserviciocron,ejecutaremoslosiguiente:
sudostartcron

Comoantes,recibimosun
mensajeinformativo,aunque
ahoratambinseincluyeelPID
delproceso.

stop:Permitedetenerlaejecucindeunservicio.Porejemplo,para
detenerelservicioanteriorescribimosesto:
sudostopcron

Denuevo,recibimosunmensaje
informativo

restart:Equivalearealizarlasdosoperacionesanteriores.Primero
detieneelservicioydespusloinicia.Parareiniciarelservicioanterior,
escribimosesto:
sudorestartcron

Debemosobservarquecuando
reiniciamoselservicio,recibeun
PIDdiferente.

Elcomandoservice
Estecomandopermitegestionardeformaindistintatantoscriptstradicionales
comoUpstartjobs.Adems,cuandousamosscripts,evitamoslanecesidad
deescribirlarutacompleta.
Laformaderealizarlasaccionesanterioresutilizandoelcomandoservice
seralasiguiente:
servicestart:Permiteiniciarlaejecucindeunservicio.Porejemplo,
parainiciarelserviciocron,ejecutaremoslosiguiente:
sudoservicecronstart

servicestop:Detieneunservicioqueseestejecutando.Por
ejemplo,paradetenerelservicioanterior,escribiramosesto:
sudoservicecronstop

servicerestart:Equivalearealizarlasdosoperacionesanteriores.
Primerodetieneelservicioydespusloinicia.Parareiniciarelservicio
anterior,escribimosesto:
sudoservicecronrestart

servicestatus:Nospermiteconsultarelestadoenelquese
encuentraunservicio.Paracomprobarlo,slotenemosqueescribirlo
siguiente:
sudoservicecronstatus

Enestecasotambinpodemoscomprobarelestadodetodoslosservicios
utilizandoelsiguientecomando:

sudoservicestatusall

Iniciaropararserviciosduranteelarranque
delsistema
Muchasveces,convienequelosserviciosseiniciendeformaautomtica
duranteeliniciodelsistema,sinesperaraqueeladministradorlospongaen
funcionamientoysinquenisiquieraseanecesarioquehayainiciadouna
sesinlocalningunodelosusuarios.
Estoocurre,porejemplo,cuandoinstalamosunservidorNFS(loveremosen
elcaptulo10).Elservicioqueatiendelasconexionesdeusuariosatravsde
laredlocaldebeestardisponible,deformaautomtica,encuantoelservidor
hayaterminadodearrancar.
LaejecucinautomticadeserviciosseorganizaenLinuxenbasealos
nivelesdeejecucin.Cadaniveldeejecucinenparticulariniciarodetendr
unosserviciosenconcreto.Recuerdaqueyahemoshabladoenelcaptulo8
delosnivelesdeejecucin(concretamente,enelapartadoAjustestrasla
instalacindeUbuntu).
Losserviciosqueseinicianconcadaniveldeejecucinseguardanenlos
directorios/etc/rc*.d(encontraremosdirectoriosdesderc0.darc6.dy
rcS.d).

Directorios/etc/rc*.d

Sinembargo,lociertoesquesetratanicamentedeenlacessimblicosa
elementosdeldirectorio/etc/init.d.Enrealidad,esenestedirectorio
dondesealmacenanlosscriptsqueformanpartedelasecuenciadearranque
delamayoradedistribucionesdetipoDebian.
Sitomamoscomoejemploelcontenidodeldirectorio/etc/rc1.d,podemos
observarque,efectivamentesetratadeenlacessimblicos(porejemplo,
K15pulseaudiohacereferenciaa../init.d/pulseaudio).

Contenidode/etc/rc1.d.

Asimplevista,tambinpodemosobservarunadiferenciaentrelosnombresde
unosscriptsyotros:unoscomienzanconlaletraKyotrosconlaletraS.El
motivoesque,alarrancarelsistemaenelniveldeejecucincorrespondiente
(enestecaso,el1),losscriptsquecomienzanconlaletraKfinalizanservicios
(Kill)ylosquecomienzanconlaletraSlosinician(start).Endefinitiva,loque
hacenespasarelargumentostopostartalscriptadecuadoen
/etc/init.d.

Siunserviciodebecorrernicamenteenunniveldeejecucinparticular,
dispondrdeunscriptdeinicio(cuyonombrecomenzarporlaletraS)enla
carpetacorrespondienteadichonivel,mientrasqueenlascarpetasdelresto
delosnivelesdeejecucindeberaparecerunscriptdefinalizacin(cuyo
nombrecomenzarporlaletraK).Deestaforma,cuandocambiemosdenivel
deejecucin,sedetendrntodoslosserviciosinnecesarios.
Elnmeroquesiguealaletrainicialhacequecadascriptseejecuteenun
ordendeterminado.Elnmeroparticularnoesimportante,peroloques
importaeslasecuencia,paraquealgunosserviciospuedaniniciarse,o
pararse,antesqueotros.

Cmofuncionanlosscriptsdeinicio?
Cuandoarrancaelsistema,seejecuta
elscript/etc/init.d/rcS.Su
misinserejecutar,deforma
ordenada,todoslosscriptsque

Enotrasdistribuciones,elnivel

comiencenporlaletraSenel

deejecucinpredeterminado

directorio/etc/rcS.d.Acadaunode

seguardaen/etc/inittab.

elloslespasa,comoprimer

Sinembargo,enUbuntuse

argumento,elvalorstart.Porel

guardadentrodelarchivo

momento,elniveldeejecucinesN

/etc/init/rc

(none).

sysinit.conf,enlavariable
DEFAULT_RUNLEVEL.

Enestaetapa,slodebenejecutarse
loselementosimprescindiblespara
llevaralsistemahastaunestado
consistente.Enestenivelnodebeiniciarseningnservicioamenosque
resulteimprescindible.
Despusdeejecutarlosscriptsquehayen/etc/rcS.d,elprocesodeinicio
cambiaalniveldeejecucinpredeterminado,quesueleser2.Apartirdeah,
seejecutaelscript/etc/init.d/rc,queiriniciando,unoauno,los
serviciosqueencuentreen/etc/rc2.d(eseldirectorioquecorrespondeal
niveldeejecucin).
DadoqueelniveldeejecucinanterioreraN,losscriptsquecomienzanporK
noseejecutan,yaqueannohayningnservicioquedetener.
Locomentadohastaahoraesvlidodeformageneralparatodoslosniveles
deejecucin,peroexistenalgunascuestionesparticulares:

ElniveldeejecucinMonousuario:Llegamosalcambiandoalnivel
deejecucin1.Estodetendrtodoslosserviciosdelsistema(comosi
todostuviesenunscriptKeneldirectorio/etc/rc1.d).Despus,se
produciruncambioalniveldeejecucinS,quenosueletenerscripts,
ysegeneraunashellparamantenimientodirectamenteen
/dev/console.
Cuandoparamosoreiniciamoselsistema(cambiandoalosnivelesde
ejecucin0o6,respectivamente),seejecutarnenordentodoslos
scriptsKcontenidoseneldirectoriocorrespondiente(/etc/rc0.do
/etc/rc6.d).Acontinuacin,siexistealgnscriptS,tambinse
ejecutadeformaordenada,peroenviandounargumentostop.

AdministrarserviciosconBootUpManager
Aunqueesimportanteconocerlabasedelfuncionamientodelosserviciosen
Ubuntuytenerasunaideacercanadecmofuncionanlascosas,yo
recomiendoutilizarlainterfazgrficaparaadministrarlosserviciosy
programasqueseinicianconelsistema.Assimplificaremos
considerablementelatareaynosevitaremoscometererrores.Laherramienta
perfectaparaestalaboresBootUpManager(tambinconocidoporla
abreviaturaBUM).
BootUpManagerpermiteuna
configuracinsencilladelosservicios
deiniciotantoparalosusuarioscomo
paralosnivelesdeejecucindel

Puedesencontrarlapgina

sistema,ascomolamodificacinde

oficialdeBootUpManager

laprioridaddeinicioyparadadelos

enlasiguientedireccin:

servicios.

http://www.marzocca.net/

Unadelascaractersticasmas
interesantesdeBootUpManageresquemuestratodoslosserviciosquese
encuentreninstaladosenelequipo,sinimportarqueestnactivosono.
ComoesteprogramaestincluidoenlosrepositoriosoficialesdeUbuntu,su
instalacinestansencillacomoabrirunaventanadeterminalyescribirel
siguientecomando:

sudoaptgetinstallbum

AunquetambinpodemosrecurriralCentrodesoftwaredeUbuntu.
Introducimospartedesunombreenelcuadrodebsqueda

Cuandoloencontremos,slo
tenemosqueseleccionarloyhacer
clicsobreelbotnInstalar.

Unavezinstalado,loejecutamosrecurriendoalDash:

Comenzamosaescribirpartedesu
nombrey,cuandoaparezca,
hacemosclicsobrel.

DadoqueBootUpManagerestpensadoparaquelousenadministradores,
loprimeroquehaceespedirquenosautentiquemos

Escribimoslacontraseade
administracinyhacemosclicsobre
elbotnAceptar.

As,llegamosalaventanaprincipal
delprograma:

Enlaparteinferior,encontramosunacasilladeverificacinjuntoalapalabra
Avanzado.

Cuandolaseleccionamosaparecen
tresnuevassolapas:Resumen,
ServiciosyScriptsdeinicioy
apagado.

Acontinuacinvamosarealizarunpequeorepasodecadaunadeellas:

LasolapaResumeneslaquecontienelainformacinqueapareca
antesdemarcarlacasillaAvanzado.Nosofreceunavisingeneralde
losserviciosqueestnactivadosduranteelarranque.Enlacolumnade
laderechapodremosverenquestadoseencuentraelservicio:
Uniconocomoeste

,indicaqueelservicioestactualmente

enfuncionamiento.
Sieliconoesas

,indicaqueelservicionoestfuncionando

enestosmomentos.
Cuandoeliconoes ,indicaqueelserviciosehaejecutado
duranteeliniciodelsistemaparaofrecerunaconfiguracininicial
y,unavezcompletadosutrabajo,hadejadodeejecutarse.Aeste
tipodeserviciosselessuelellamaroneshot(undisparo)
Y,porltimo,sieliconoes ,esqueBootUpManagernoha
sidocapazdedetectarsielscriptseestejecutando.
Podemosactivarodesactivarcualquieradeelloshaciendoclicsobresu
casilladeverificacin

LasolapaServiciosnosofreceunmayordetallesobrelosserviciosy
podremosestablecerdeunaformamsdetalladaelniveldeejecucin
enelqueseejecutacadaunodeellos.Adems,enlaparteinferiorde
laventana,apareceunabrevedescripcindelservicio(aunquela
mayoradelasvecesseencuentravaco).

AspectodelasolapaServicios.

ElttulodelasolapaScriptsdeinicioyapagadoseexplicaporssolo.
Muestralosscriptsqueseejecutancuandoarrancamosoapagamosla

mquina.Enestecaso,porcuestionesdeseguridad,BootUp
Managernopermitehacercambiosenlaconfiguracin.
Si,porejemplo,necesitamoscambiarlaprioridaddeiniciooparadadeun
servicio,slotenemosquehacerclicsobresunombreconelbotnderecho
delratn.

Enelmendecontextoque
aparece,elegimosCambiar
prioridaddeinicio/parada.

Enesemomento,aparecerunanuevaventanadondepodemoselegirel
nmeroqueindicaelordenenelqueseiniciarosepararelservicio.

Despusharemosclicsobreelbotn
Aceptarparavalidarloscambioso
enCancelarsipreferimosdejarlo
comoestaba.

Paraqueloscambiossehaganefectivos,debemosrecordarquehayque
pulsaralfinalelbotnAplicar.Tendremoslaoportunidaddeaplicarlos
cambiosenelmomento,loqueimplicaquelosscriptssedetendrnyse
volvernainiciar,oesperaralsiguientereinicio.

Paraqueloscambiosseanefectivos
enestemomento,haremosclic
sobreelbotnS.

Comprtelo:


Relacionado

Captulo9:
Administracindel
servidorUbuntu14.04
LTS
24diciembre,2014
En"Sistemas
OperativosenRed(2
ed.)"

Captulo1:
Introduccinalos
sistemasoperativosen
red
22agosto,2014
En"Sistemas
OperativosenRed(2
ed.)"

Captulo11:Instalary
configurarOpenLDAP
enUbuntu14.04LTS
3enero,2015
En"Sistemas
OperativosenRed(2
ed.)"

JAIMIEJACOBSCARTERAMGICAFLAP

69,00

Copyright2016SomeBooks.es

Potrebbero piacerti anche