在 Centos6.6 中执行 rc.local 后没有获得 GUI

在 Centos6.6 中执行 rc.local 后没有获得 GUI

这是带有 GUI 的 CentOS 6.6 服务器。我已将启动命令放在 /etc/rc.local 中。此服务器上运行的服务是 Docker 和 Nginx。因此,我已将带有端口映射的容器启动命令放在 rc.local 中。

Docker 容器正在启动,但在服务器上我没有得到 GUI,只有 CLI 出现,如果我注释掉 rc.local 中的所有命令,那么 GUI 会在重启后出现。

rc.local 文件包含...

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local

sysctl net.ipv4.conf.all.forwarding=1
sleep 5
setenforce Permissive
sleep 5
iptables -F
sleep 5
service nginx stop
sleep 5
service nginx start
sleep 5
service docker stop
sleep 5
service docker start
sleep 5
docker stop $(docker ps -a -q)
sleep 5
docker rm $(docker ps -a -q)
sleep 5
docker run -p port:port/tcp -d memcached:latest
sleep 5
docker run -d  -v /mnt/path:/mnt/path -p port:port/tcp   imagename
sleep 5
docker run -d  -p port:port/tcp -p port:port/udp imagename
sleep 5
mount -t nfs 192.168.0.3:/mnt/path/ /mnt/path/

答案1

您的系统中有某些东西rc.local没有终止。此文件的执行必须在常规引导过程完成之前完成,然后 X 才会启动。

既然你说 Docker 容器全部启动,我猜可能是mount由于某种原因该行没有完成。确认没有完成,找出原因并修复它。更好的方法是,rc.local按照 Michael 的建议,将所有这些东西移出并移入正确的启动文件,尤其是因为所有这些sleeps 会使启动时间比应有的时间长一分钟。

相关内容