From Fedora Project Wiki

< SysVinit to Systemd Cheatsheet

Revision as of 12:26, 22 November 2011 by Gomix (talk | contribs) (Hecha, corrija, extienda :))

Este documento es para ayudar a los administradores de sistema que necesitan entender cuáles son los comandos en systemd que remplazan la forma de trabajo antigua de sysvinit. Si desea información general acerca de systemd refiérase a systemd.

Note que los comandos 'service' y 'chkconfig' continuarán funcionando igual pero en el mundo systemd. Esta guía es acerca de cómo usar los comandos remplazos nativos systemctl.

Servicios

Comando sysvinit Comando systemd Notas
service frobozz start systemctl start frobozz.service Utilizado para arrancar el servicio (no resiste reinicio)
service frobozz stop systemctl stop frobozz.service Utilizado para detener el servicio (no resiste a reinicio)
service frobozz restart systemctl restart frobozz.service Utilizado para detener y arrancar el servicio.
service frobozz reload systemctl reload frobozz.service Cuando se soporta, recarga el archivo de configuración sin interrumpir las operaciones pendientes.
service frobozz condrestart systemctl condrestart frobozz.service Rearranca el servicio si ya está ejecutándose.
service frobozz status systemctl status frobozz.service Indica si el servicio está en ejecución o no.
ls /etc/rc.d/init.d/ ls /lib/systemd/system/*.service /etc/systemd/system/*.service
systemctl list-units --all
Utilizado para listar los servicios que pueden ser iniciados o detenidos
Utilizado para listar todos los servicios y otros units
chkconfig frobozz on systemctl enable frobozz.service Pone el servicio en "on", para que se inicie cuando se inicie la máquina u otro disparador como cambio de nivel de ejecución.
chkconfig frobozz off systemctl disable frobozz.service Pone el servicio en "off" para que al iniciar el sistema, no se inicie el servicio o se detenga por ejemplo al momento de cambio de nivel de ejecución.
chkconfig frobozz systemctl is-enabled frobozz.service Utilizado para verificar si un servicio está configurado para ser iniciado en el entorno actual.
chkconfig frobozz --list ls /etc/systemd/system/*.wants/frobozz.service Utilizado para listar qué niveles de ejecución el servicio está en "on" o "off".
chkconfig frobozz --add systemctl daemon-reload Utilizado para cuando se desea crear un nuevo archivo de servicio o modificar su configuración.

Note que todas las líneas /sbin/service y /sbin/chkconfig listadas arriba continúan funcionando en systemd y serán traducidos a comandos nativos systemd en la medida de que sea necesario. La única excepción es chkconfig --list.

Warning.png
Comandos adicionales
En SysVinit, los servicios pueden definir comandos arbitrarios. Un ejemplo sería service iptables panic, o service httpd graceful. Los servicios nativos systemd no tienen esta habilidad.

Cualquier servicio que defina comandos adicionales de esta forma necesitará definir alguna otra manera, servicio-especifica, de lograr su objetivo cuando escriba la definición de un servicio nativo systemd.

Verifique las notas de liberación específicas al paquete para verificar servicios que hayan hecho eso..

Niveles de ejecución y targets

Systemd tiene el concepto de targets que sirve a un propósito similar al de niveles de ejecución (runlevels) pero actúa ligeramente diferente. Cada target se nombrado en vez de numerado y está diseñado para servir un propósito específico. Algunos targets son implementados heredando todos los servicios de otro target y agregándole servicios adicionales. Existen targets systemd que imitan los niveles de ejecución sysvinit de tal forma que pueda seguir usándolos para cambiar entre targets utilizando el comando telinit RUNLEVEL. A los niveles de ejecución les es asignado un propósito específico en las instalaciones Fedora; 0, 1, 3, 5 y 6 en donde cada tiene una asignación 1:1 con un target systemd. Desafortunadamente no hay una buena manera de hacer lo mismo para los niveles de ejecución del usuario 2 y 4. Si usted hace uso de ellos se le sugiere que construya un nuevo target systemd como /etc/systemd/system/$SUTARGET que tome uno de los niveles de ejecución como base (puede ver /lib/systemd/system/graphical.target como ejemplo), cree un directorio /etc/systemd/system/$SUTARGET.wants, y luego haga symlinks a los servicios adicionales que desee habilitar en dicho directorio. Los archivos unit de servicio a los que haga symlink viven en /lib/systemd/system).

Nivel de ejecución sysvinit Target systemd Notas
0 runlevel0.target, poweroff.target Detener el sistema.
1, s, single runlevel1.target, rescue.target Modo monoususario.
2, 4 runlevel2.target, runlevel4.target, multi-user.target Definido por el usuario/Específico al sitio. Por omisión idéntico a 3.
3 runlevel3.target, multi-user.target Multiusuario, no gráfico. Los usuarios pueden usualmente hacer login por medio de múltiples consolas o desde la red.
5 runlevel5.target, graphical.target Multiusuario, gráfico. Usualmente todos los servicios del nivel de ejecución 3 sumando el login gráfico.
6 runlevel6.target, reboot.target Reiniciar el sistema.
emergency emergency.target Shell de emergencia.

Cambiando el nivel de ejecución:

Comando sysvinit Comando systemd Command Notas
telinit 3 systemctl isolate multi-user.target (OR systemctl isolate runlevel3.target OR telinit 3) Cambia nivel de ejecución a multiusuario.
sed s/^id:.*:initdefault:/id:3:initdefault:/ ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target Define el nivel de ejecución multiusuario para el próximo reinicio del sistema.