Systemctl en Fedora

Todo ocurrió cuando migré a Fedora 16, el tema es que no levantó nunca mi VPN que tengo con openvpn, lo obvio era hacer un:

[root@acerone ~]# service openvpn start
Redirecting to /bin/systemctl start openvpn.service
Failed to issue method call: Unit openvpn.service failed to load: No such file or directory. See system logs and ‘systemctl status openvpn.service’ for details.

Como pueden ver sale un error y lo que me llamó la atención fue ver la palabra systemctl.

La verdad es que a la final no solucioné el problema del openvpn (En otro post lo indico como lo hice), sin embargo investigando me enteré que desde el fedora 15 se implementó systemd que es la nueva manera de manejar los servicios, es mucho más completo de lo que podíamos hacer con el comando service.

Ahora ya no se manejan los servicios con el comando service ni tampoco con el chkconfig, aunque existen todavía unos pocos servicios que se le hace por esta vía, la mayoría en fedora 16 se lo hace con systemctl, esto quiere decir que los servicios ya no están en el directorio /etc/init.d/, ahora están en /lib/systemd/system/

A continuación un resumen de las funcionalidades del comando systemctl:

Para iniciar un servicio:

[root@acerone ~]# systemctl start sendmail.service

Si prestan atención se dan cuenta que dice sendmail.service la razón es porque este comando puede controlar no solo servicio si no sockets por ejemplo, es por eso que ahora todos los servicios tienen la extensión .service.

Ver el status de un servicio

[root@acerone ~]# systemctl status cups.service
cups.service – CUPS Printing Service
Loaded: loaded (/lib/systemd/system/cups.service; enabled)
Active: active (running) since Tue, 29 Nov 2011 14:49:53 -0500; 1 day and 19h ago
Main PID: 1600 (cupsd)
CGroup: name=systemd:/system/cups.service
└ 1600 /usr/sbin/cupsd -f

Como pueden ver, el status del servicectl nos entrega mucha más información de lo que ofrecía el service servicio status.

Arrancar el servicio al inicio (chkconfig servicio on)

[root@acerone ~]# systemctl enable cups.service
ln -s ‘/lib/systemd/system/cups.service’ ‘/etc/systemd/system/printer.target.wants/cups.service’
ln -s ‘/lib/systemd/system/cups.socket’ ‘/etc/systemd/system/sockets.target.wants/cups.socket’
ln -s ‘/lib/systemd/system/cups.path’ ‘/etc/systemd/system/multi-user.target.wants/cups.path’

No arrancar el servicio al inicio (chkconfig servicio off)

[root@acerone ~]# systemctl disable cups.service
rm ‘/etc/systemd/system/printer.target.wants/cups.service’
rm ‘/etc/systemd/system/multi-user.target.wants/cups.path’
rm ‘/etc/systemd/system/sockets.target.wants/cups.socket’

Como pueden ver, ahora todo se hace con el systemctl y de hecho tiene muchas funciones más que las estoy descubriendo y en el futuro les compartiré.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Post Navigation