Назад | Перейти на главную страницу

Не появляется графический интерфейс после выполнения rc.local в Centos6.6

Это сервер 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/

Что-то в твоем rc.local не прекращается. Выполнение этого файла должно завершиться до завершения обычного процесса загрузки и запуска X.

Поскольку вы говорите, что все контейнеры докеров запускаются, я предполагаю, что mount линия по какой-то причине не завершается. Подтвердите, что это не так, выясните, почему, и исправьте. А еще лучше убрать все это из rc.local и в соответствующие файлы запуска, как рекомендует Майкл, не в последнюю очередь потому, что все эти sleeps заставит загрузку занять на минуту больше, чем следовало бы.