Estoy tratando de usar el systemctl
comando en un ubuntu:16.04
contenedor acoplable. Estoy ejecutando el siguiente comando ...
systemctl status ssh
Sin embargo, recibo el error ...
Failed to connect to bus: No such file or directory
¿Por qué esto no funciona? ¿Está esto relacionado con Ubuntu ejecutándose en un contenedor docker? ¿Cómo puedo llegar systemctl
a trabajar correctamente?
service ssh start
Respuestas:
Supongo que comienzas tu contenedor acoplable con algo como
El problema ahora es que su proceso de inicio PID 1 es
/bin/bash
, no systemd. Confirmar conps aux
.Además de eso, te estás perdiendo dbus con la forma de comunicarte. De aquí proviene su mensaje de error. Pero como su PID 1 no es systemd, no ayudará instalar dbus.
Lo mejor sería repensar la forma en que planea usar Docker. No confíe en systemd como administrador de procesos, sino que haga que el contenedor docker ejecute la aplicación deseada en primer plano.
fuente
docker log
./sbin/init
ser PID = 1 proceso. Agregar--privileged=true
como lo sugiere @sonjaya sonjaya a continuación resolvió el problema.Otros han reportado un problema similar. Inicie la terminal y escriba:
¿Ves una variable de entorno como esta?
Donde
id -u
está encerrado entre comillas, no comillas simples. Esta variable se reinterpreta en un número, generalmente1000
para usuarios normales y0
para superusuario (sudo).Si la variable de entorno
XDG_RUNTIME_DIR
no existe, debe crearla. La discusión completa se encuentra en las respuestas del sistema de lanzamiento .fuente
root
, utilicé la variableXDG_RUNTIME_DIR=/run/root/0
sin éxito. Luego revisé la carpeta/run
y descubrí que no hay subcarpeta/run/root
. ¿Hay alguna forma de obtener un mensaje de error más detallado? Eché un vistazosystemctl --help
pero no pude ver una forma de obtener mensajes de error detallados.PID 1
generalmentesystemd
en un contenedor Docker con el Punto de entrada del contenedor .Si recibe este error en el Subsistema de Windows para Linux (WSL), he descubierto que es porque Docker no es compatible. Esto se debe a la falta de cgroups y otros requisitos previos.
fuente
Prueba esto:
o
Será el mismo resultado.
Aquí obtengo del documento de Docker :
fuente
Simplemente inicie el
dbus
servicio:fuente
Es posible que no esté ejecutando systemd , que es la implementación predeterminada de init en 16.04. Si ha actualizado desde 14.04, que es más probable aún en marcha recién llegado , y el resultado de ejecutar el systemctl comando es la salida que tienes.
Vea mi respuesta en systemctl: comand 16.04 server no encontrado para más.
fuente
Dentro del contenedor docker, creo que puedes actualizar-rc.d si todavía tienes problemas con systemd. Intenté con update-rd.c y funciona.
fuente
Recibía exactamente el mismo error y luego lo ejecuté con éxito con
sudo
fuente
sudo
para eso. Parece una coincidencia. ¿Puedes volver a hacer la prueba?saif@sr-server:~$ systemctl status ssh
Failed to connect to bus: No such file or directory
saif@sr-server:~$ sudo systemctl status ssh
[sudo] password for saif:
● ssh.service - OpenBSD Secure Shell server Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2018-01-19 23:38:14 PKT; 4min 4s ago Main PID: 18222 (sshd) Tasks: 15 Memory: 32.7M CPU: 488ms