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

(Ubuntu) Как убедиться, что веб-сервер запущен до отображения среды рабочего стола?

Я пытаюсь создать свой собственный дистрибутив Linux в формате LiveCD. Я установил веб-сервер в свой Linux LiveCD и заставил его автоматически запускаться во время загрузки.

Я сделал LiveCD для автоматического входа в среду рабочего стола без необходимости ввода пароля пользователем.

Теперь я хотел бы настроить веб-браузер так, чтобы он автоматически всплывал во время запуска и отображал домашнюю страницу веб-сервера.

Я пробовал разные методы, но обнаружил, что когда пользователь загружает LiveCD, большую часть времени среда рабочего стола и веб-браузер будут отображаться до того, как веб-сервер завершит запуск. В результате веб-браузер покажет страницу с ошибкой «веб-страница не найдена / недоступна».

Через несколько секунд (после того, как веб-сервер завершит запуск), если пользователь нажмет кнопку обновления, он сможет увидеть домашнюю страницу.

Как я могу убедиться, что веб-сервер был запущен, прежде чем окружение рабочего стола будет показано пользователю?

Спасибо.

Вы можете, например, использовать какой-то сценарий вроде этого:

    #!/bin/bash

    # Check existence of webserver pidfile
    pidfile="/var/run/nginx.pid"

    if [ -f $pidfile ]; then
            echo "Pidfile exists"
            < OPEN BROWSER >
    else
            echo "Web Server isn't started"
    fi

Сценарий оболочки, подобный тому, что опубликовал @hangover, будет работать.

Если это гонка всего на пару секунд, то другим подходом было бы создание локального HTML-файла и установка его в качестве стартовой страницы для вашего веб-браузера с таким путем, как file:///var/www/html/localhost/startingup.html. Сама страница скажет «Подождите, пока я завершаю запуск, это займет совсем немного времени», а затем перейдет на вашу настоящую веб-страницу, скажем, через 30 секунд.

<html>
<head>
     <title>Starting up...</title>
     <meta http-equiv="refresh" content="30; http://your.actual.page/">
</head>
<body>
     <h1>Please wait, I'm still starting up.</h1>
</body>
</html>