Migration /var/run в /run и проблемы запуска MySQL и TeamSpeak

Материал из AlexNook
Перейти к навигацииПерейти к поиску

После обновления пакета openRC до версии sys-apps/openrc-0.11.8 произошла миграция каталога /var/run в /run. Таким образом каждый раз при старте в /run монтируется tmpfs и все папки и файлы пересоздаются. Некоторые программные продукты не успели ещё обновить свою init скрипты, отчего они перестали запускаться.

Рассмотрю решение этой проблемы на примере MySQL и TeamSpeak server.

Корректировка init скрипта и запуск MySQL

Необходимо в файл /etc/init.d/mysql в функцию checkconfig() добавить строчки

File: /etc/init.d/mysql
    if [ ! -d /var/run/mysqld ] ; then
        checkpath -d -m 755 -o mysql:mysql /var/run/mysqld
    fi

Ниже приведён пример кусочек файла:

File: /etc/init.d/mysql
checkconfig() {
        wdebug 4 ">>> checkconfig(\"${1}\")"
        local datadir="${1}" pidfile="${2}" socket="${3}"

        if [ ! -d /var/run/mysqld ] ; then
                checkpath -d -m 755 -o mysql:mysql /var/run/mysqld
        fi

        if [[ -n "${NOCHECK}" ]] ; then
                rm -f "${pidfile}" "${socket}"
                return 0
        fi

Так как функция checkconfig() у меня уже существовала и вызывалась, когда следует, то больше я ничего не делал.

Корректировка init скрипта и запуск TeamSpeak

Необходимо в файл /etc/init.d/teamspeak2-server добавить функцию checkconfig() с содержимым:

nano /etc/init.d/teamspeak2-server

Ниже приведён пример кусочек файла:

File: /etc/init.d/teamspeak2-server
depend() {
        need net
        use mysql
}


checkconfig() {
    if [ ! -d /var/run/teamspeak2-server ] ; then
        checkpath -d -m 755 -o teamspeak2:teamspeak2 /var/run/teamspeak2-server
    fi
}

start() {
checkconfig
        ebegin "Starting TeamSpeak Server"
        start-stop-daemon --start --quiet --chuid teamspeak2 \
                --exec "/opt/teamspeak2-server/server_linux" -- \

а так же в этом же вайле в функцию start() { добавить вызов checkconfig.


Ссылки

  • Блог человека, который мне помог и стал основой данного хелпа