2012-12-01 02:23:18 +0000 2012-12-01 02:23:18 +0000
218
218

Cómo eliminar los servicios del sistema

Si instalo un nuevo servicio y luego decido que ya no quiero esa aplicación y la elimino, el servicio sigue figurando en la salida de systemctl como error.

¿De dónde viene esto y cómo puedo eliminarlo completamente?

Respuestas (5)

352
352
352
2015-07-06 16:46:50 +0000

Mi receta para la obliteración del servicio (¡tenga cuidado con las declaraciones de rm!)

systemctl stop [servicename]
systemctl disable [servicename]
rm /etc/systemd/system/[servicename]
rm /etc/systemd/system/[servicename] symlinks that might be related
systemctl daemon-reload
systemctl reset-failed

Es posible que el servicio systemd ‘envuelva’ los viejos scripts de estilo en /etc/init.d, por lo que puede que quiera limpiar eso también, pero eso es no donde viven los servicios systemd.

34
34
34
2016-04-13 09:41:17 +0000

Probablemente estés buscando reset-failed:

$ sudo systemctl reset-failed
$

De la página del hombre del sistema:

reset-failed [PATTERN...]

Restablecer el estado “fallido” de las unidades especificadas, o si no se pasa el nombre de la unidad, restablecer el estado de todas las unidades. Cuando una unidad falla de alguna manera (es decir, un proceso que sale con un código de error distinto de cero, que termina de forma anormal o que se interrumpe en el tiempo), entrará automáticamente en el estado “fallido” y su código de salida y estado se registran para que el administrador los introspecte hasta que se reinicie el servicio o se restablezca con este comando.

24
24
24
2012-12-01 05:39:23 +0000

Suena como si lo hubieras desinstalado, pero no has quitado el gancho del sistema:

# systemctl disable [servicename]

5
5
5
2018-07-29 12:48:30 +0000

Añadiendo a la respuesta de @mark-lakata y teniendo en cuenta la atención requerida para el comando rm. [chkconfig] puede simplificar el proceso! click aquí para leer acerca de chkconfig )

Para re-escribir la lista de comandos:

  1. systemctl stop [servicename]
  2. chkconfig [servicename] off
  3. systemctl daemon-reload
  4. systemctl reset-failed &007

Nota: El 1er comando es opcional, dependiendo de si se desea mantener el servicio funcionando en la sesión actual o no (en cuanto a esta pregunta se debe utilizar el comando).

El 2º comando se encarga tanto de desactivar como de eliminar (siguiendo los enlaces simbólicos) el servicio.

1
1
1
2018-11-07 15:31:17 +0000

Retirar un servicio de systemd :

Systemd usa la unidad (archivo para definir servicios) para retirar un servicio la unidad tiene que ser retirada… Aquí hay una lista de las ubicaciones de la unidad :

/etc/systemd/system/ (and sub directories)
/usr/local/etc/systemd/system/ (and sub directories)
~/.config/systemd/user/ (and sub directories)
/usr/lib/systemd/ (and sub directories)
/usr/local/lib/systemd/ (and sub directories)
/etc/init.d/ (Converted old service system)

Actualizar systemd :

systemctl daemon-reload
systemctl reset-failed

Servicios fantasmas (no encontrados) :

Systemd puede listar los servicios fantasmas (no encontrados) incluso si la unidad se borra por muchas razones

  1. La unidad todavía está presente en uno de los directorios de systemd
  2. La unidad está en el directorio de Systemd. la unidad no sale pero un enlace de archivo sigue presente en uno de los directorios systemd
  3. el servicio se utiliza en otra(s) unidad(es)*

(*) si un servicio se menciona en otra unidad pero no existe systemd seguirá listando ese servicio con el estado no encontrado aunque no haya un archivo de unidad… puede buscar qué unidad está utilizando ese servicio con una búsqueda de texto y editar esas unidades (no se recomienda si planea instalar ese servicio más tarde)