En Windows tengo el administrador de servicios, donde veo todos los servicios del sistema, que se pueden iniciar a través de Windows mismo, configuro el usuario que usa, la administración de derechos está ahí y puedo pasar variables y alguna otra información a los servicios. , puedo nombrarlos y puedo crear servicios duplicados de un programa y así sucesivamente. Así que tengo una herramienta de administración principal en Windows.
¿Cómo puedo hacer lo mismo en Linux? ¿Cómo puedo activar para ejecutar "svnserve" al inicio, o cómo puedo configurar los servicios para que se ejecuten en un contexto especial? ¿Cómo puedo ver todos los servicios "programados"?
Respuesta aceptada:
Actualmente hay 3 sistemas de inicio principales utilizados por Linux. Hace unos años, solo había uno, SysVinit. Pero SysVinit carecía seriamente de capacidades como la representación gráfica de la dependencia del servicio, por lo que ya está obsoleta en la mayoría de las distribuciones. Actualmente, la mayoría de las distribuciones están cambiando a systemd. Aunque también hay advenedizo.
Pero aquí está la respuesta a su pregunta para cada uno de los 3 sistemas de inicio:
SysVinit
SysVinit actualmente utilizado por Debian y RedHat. Aunque la próxima versión de RedHat (7) usará systemd.
La forma universal de habilitar los servicios de SysVinit en el arranque es enlazarlos en /etc/rc3.d
(o /etc/rc2.d
). Todos los servicios se pueden encontrar en /etc/init.d
. Sin embargo, tenga en cuenta que las distribuciones a menudo tendrán su propia herramienta para administrar estos archivos, y esa herramienta debe usarse en su lugar. (Fedora/RedHat tiene service
y chkconfig
, ubuntu tiene update-rc.d
)
Servicios de lista:
ls /etc/init.d/
Iniciar servicio:
/etc/init.d/{SERVICENAME} start
o
service {SERVICENAME} start
Detener servicio:
/etc/init.d/{SERVICENAME} stop
o
service {SERVICENAME} stop
Habilitar servicio:
cd /etc/rc3.d
ln -s ../init.d/{SERVICENAME} S95{SERVICENAME}
(el S95
se utiliza para especificar el orden. S01 comenzará antes que S02, etc.)
Desactivar servicio:
rm /etc/rc3.d/*{SERVICENAME}
Sistema
La distribución más notable que usa systemd es Fedora. Aunque es utilizado por muchos otros. Además, dado que Debian eligió usar systemd en lugar de advenedizo, se convertirá en el sistema advenedizo de facto para la mayoría de las distribuciones (ubuntu ya ha anunciado que eliminarán advenedizo para systemd).
Servicios de lista:
systemctl list-unit-files
Iniciar servicio:
systemctl start {SERVICENAME}
Detener servicio:
systemctl stop {SERVICENAME}
Habilitar servicio:
systemctl enable {SERVICENAME}
Desactivar servicio:
systemctl disable {SERVICENAME}
Advenedizo
Upstart fue desarrollado por la gente de Ubuntu. Pero después de que Debian decidiera optar por systemd, Ubuntu anunció que dejaría de ser advenedizo.
Upstart también fue utilizado brevemente por RedHat, ya que está presente en RHEL-6, pero no se usa comúnmente.
Relacionado:¿Cómo logra la fecha de coreutil obtener resultados tan extraños?Servicios de lista:
initctl list
Iniciar servicio:
initctl start {SERVICENAME}
Detener servicio:
initctl stop {SERVICENAME}
Habilitar servicio:
2 maneras desafortunadamente:
-
Habrá un archivo
/etc/default/{SERVICENAME}
que contiene una líneaENABLED=...
. Cambie esta línea aENABLED=1
. -
Habrá un archivo
/etc/init/{SERVICENAME}.override
. Asegúrate de que contienestart
(o está completamente ausente), nomanual
.
Desactivar servicio:
echo manual > /etc/init/{SERVICENAME}.override
Nota:También existe el sistema de inicio 'OpenRC' que utiliza Gentoo. Actualmente, Gentoo es la única distribución que lo usa, y no está siendo considerado para su uso ni soportado por ninguna otra distribución. Así que no estoy cubriendo su uso (aunque si la opinión es que lo hago, puedo agregarlo).