[root@37acb2b8847f sbin]# systemctl start sshd Failed to get D-Bus connection: Operation not permitted
时间: 2023-11-08 14:59:13 浏览: 184
当执行命令[root@37acb2b8847f sbin]# systemctl start sshd时,报错"Failed to get D-Bus connection: Operation not permitted"。这是因为在Docker容器中无法直接使用systemctl命令来启动服务。可以使用以下方法来解决这个问题:
1. 可以尝试手动启动sshd服务,使用命令`/usr/sbin/sshd -D`来启动sshd服务。
2. 可以通过修改容器的启动文件来启动sshd服务。可以创建一个启动脚本,例如`start_sshd.sh`,然后在脚本中添加启动sshd服务的命令,并将该脚本添加到容器的启动过程中。
3. 可以使用`docker exec`命令进入容器内部,然后手动启动sshd服务。首先使用`docker ps`命令找到运行该容器的名称或ID,然后使用`docker exec -it <container_id> bash`命令进入容器内部,最后使用`/usr/sbin/sshd -D`命令启动sshd服务。
相关问题
centos尝试sudo systemctl start sshd后,出现错误 Failed to get D-Bus connection: Operation not permitted
如果在 CentOS 上尝试启动 SSH 服务 (`sshd`) 时出现 `Failed to get D-Bus connection: Operation not permitted` 错误,可能是因为您正在以非特权用户的身份尝试启动服务。
请尝试使用 `sudo` 命令以管理员身份启动服务,例如:
```
sudo systemctl start sshd
```
如果您仍然收到相同的错误,请尝试使用以下命令手动启动 SSH 服务:
```
sudo /usr/sbin/sshd -D
```
这将启动 SSH 服务,并使其在前台运行。您可以使用 `Ctrl + C` 组合键来停止服务。
如果以上方法无法解决问题,可能是系统中的 D-Bus 服务出现了问题。您可以尝试重新启动 D-Bus 服务,例如:
```
sudo systemctl restart dbus
```
然后再尝试启动 SSH 服务。
Failed to get D-Bus connection: Operation not permitted
该错误通常是由于在docker容器中运行systemd服务时,缺少必要的权限所导致的。解决方法如下:
1. 创建一个特权容器,使用命令docker run -it --name <container_name> --privileged=true <image_name> /usr/sbin/init。
2. 进入容器,使用命令docker exec -it <container_name> /bin/bash。
3. 在容器中运行systemctl start <service_name>命令,以启动所需的服务。
4. 如果仍然出现错误,请确保在容器中安装了systemd,并且在Dockerfile中添加了以下行:RUN yum -y install systemd; systemctl enable systemd。
5. 如果仍然无法解决问题,请检查是否有其他进程正在使用D-Bus连接,或者尝试重启D-Bus服务。
阅读全文