¿Sueña Tux en código fuente?

3 Octubre 2008

Opensolaris – Gestión de los servicios SMF

Archivado en: opensolaris — Etiquetas:, , , , — mmejiav @ 2:22 PM

Continuando con el manejo de servicios SMF para monitorizar o cambiar el estado de los servicios se utilizan los comandos:

  • svcs: información sobre el estado del servicio y / o dependencias.
  • svcadm: acciones administrativas como cambiar el estado de un servicio.
  • svccfg: Crear nuevos servicios a partir de un archivo xml y modificar las propiedades de un servicio.
  • svcprop: obtener y cambiar valores de la bbdd sobre un servicio.

Obtener información de los servicios (svcs)

Para mas organización los servicios SMF estan en grupos con los siguientes nombres:

  • Application: servicios asociados a aplicaciones
  • Device: dependencias
  • Milestone: niveles de ejecución
  • Network: servicios del antiguo inetd.conf
  • Platform: servicios específicos de la plataforma
  • System: servicios independientes de la plataforma
  • Site: por ahora sin uso (que precavidos… hasta inventan esto para el futuro)

Información del servicio

sendmail: (utilizo el grep para ser puntual en la búsqueda)

# svcs -a |grep sendmail
online          9:34:28 svc:/network/smtp:sendmail

Como se puede ver pertenece a /network

Dependencias de un servicio

El mismo sendmail (nota: es necesario colocar la “ruta” completa del servicio)

# svcs -d svc:/network/smtp:sendmail
STATE          STIME    FMRI
online          9:34:16 svc:/system/identity:domain
online          9:34:19 svc:/network/service:default
online          9:34:19 svc:/milestone/name-services:default
online          9:34:21 svc:/system/filesystem/local:default
online          9:34:27 svc:/system/filesystem/autofs:default
online          9:34:28 svc:/system/system-log:default

Como vemos para que sendmail pueda ser ejecutado los otros servicios deben estar en ejecución (son sus dependencias)

Procesos asociados a un servicio

El comando es svcs -p. Claro que tambien podemos utilizar el viejo ps -fea. El ejemplo con sendmail:

# svcs -p svc:/network/smtp:sendmail
STATE          STIME    FMRI
online         13:53:15 svc:/network/smtp:sendmail
13:53:16      551 sendmail
13:53:16      552 sendmail

# ps -fea |grep sendmail
smmsp   551     1   0 13:53:17 ?           0:00 /usr/lib/sendmail -Ac -q15m
root   552     1   0 13:53:17 ?           0:00 /usr/lib/sendmail -bl -q15m

Información detallada de un servicio

SMP aporta tambien información detallada de un servicio como su nombre, si esta habilitado, su propio estado y dependecias. Comando: svcs -l

# svcs -l svc:/network/smtp:sendmail
fmri         svc:/network/smtp:sendmail
name         sendmail SMTP mail transfer agent
enabled      true
state        online
next_state   none
state_time    3 de octubre de 2008 13:53:15 COT
logfile      /var/svc/log/network-smtp:sendmail.log
restarter    svc:/system/svc/restarter:default
contract_id  73
dependency   require_all/refresh file://localhost/etc/mail/sendmail.cf (online)
dependency   require_all/refresh file://localhost/etc/nsswitch.conf (online)
dependency   optional_all/none svc:/system/filesystem/autofs (online)
dependency   require_all/none svc:/system/filesystem/local (online)
dependency   require_all/none svc:/network/service (online)
dependency   require_all/refresh svc:/milestone/name-services (online)
dependency   optional_all/refresh svc:/system/identity:domain (online)
dependency   optional_all/none svc:/system/system-log (online)

Diagnostico de fallos

Con el comando svcs -x nos muestra información detallada en caso de un error en el arranque de un servicio. Útil para el diagnostico de errores.

Parar, arrancar y reiniciar un servicio

Podemos dejar temporal o permanentemente detenido un servicio deseado. Para que el cambio sea temporal:

# svcadm disable -t svc:/network/smtp:sendmail

Y si adicional verificamos con el diagnostico de fallos (punto anterior)

# svcs -x svc:/network/smtp:sendmail
svc:/network/smtp:sendmail (sendmail SMTP mail transfer agent)
State: disabled since  3 de octubre de 2008 14:15:46 COT
Reason: Temporarily disabled by an administrator.
See: http://sun.com/msg/SMF-8000-1S
See: sendmail(1M)
See: /var/svc/log/network-smtp:sendmail.log
Impact: This service is not running.

Más claro no se puede: informa que el servicio fue temporalmente desabilitado por un administrador. Además informa donde se puede hallar mas info al respecto y hasta la ubicación del archivo log.

Para iniciar nuevamente el servicio:

# svcadm enable -t svc:/network/smtp:sendmail

Para reiniciar (restart como en GNU/Linux) ejecutamos

# svcadm restart svc:/network/smtp:sendmail

Haciendo el reinicio del servicio y cambiando los pid del mismo.

Como quiero dejar permanente el servicio sendmail desabilitado ejecuto la parada del servicio sin la variable de temporal (-t)

# svcadm disable svc:/network/smtp:sendmail

Y luego verifico:

# svcs -x svc:/network/smtp:sendmail
svc:/network/smtp:sendmail (sendmail SMTP mail transfer agent)
State: disabled since  3 de octubre de 2008 14:26:47 COT
Reason: Disabled by an administrator.
See: http://sun.com/msg/SMF-8000-05
See: sendmail(1M)
See: /var/svc/log/network-smtp:sendmail.log
Impact: This service is not running.

Creo que con eso es suficiente para administrar rapidamente los servicios ejecutandose. Si ya se desea crear o modificar los valores de los servicios puedes consultar un poco mas sobre svcprop. Igualmente es posible generar nuevos servicios y / o convertir un servicio inetd.conf en SMF.

Hasta la proxima.

3 comentarios »

  1. Si tienes mas de un servicio smtp, podrias reiniciarlos todos sin especificar que sea sendmail o demas. Puedes agrupar diferentes servicios en una sola categoria (por eso esta primero smtp).

    % svcadm restart smtp

    :)

    comentario por arpunk — 3 Octubre 2008 @ 4:45 PM

  2. Gracias por la aclaración… como decía antes apenas estoy comenzando con Opensolaris… cualquier aclaración adicional sera siempre bienvenida

    comentario por mmejiav — 3 Octubre 2008 @ 9:44 PM

  3. This look interesting,so far.
    If it’s not just all bots here, let me know. I’m looking to network
    Oh, and yes I’m a real person LOL.

    Bye,

    comentario por Annemafoete — 14 Agosto 2009 @ 3:33 AM


Canal RSS de los comentarios de la entrada. URI para TrackBack.

Deja un comentario

Blog de WordPress.com.