Migration /var/run в /run и проблемы запуска MySQL и TeamSpeak
После обновления пакета openRC до версии sys-apps/openrc-0.11.8 произошла миграция каталога /var/run в /run. Таким образом каждый раз при старте в /run монтируется tmpfs и все папки и файлы пересоздаются. Некоторые программные продукты не успели ещё обновить свою init скрипты, отчего они перестали запускаться.
Рассмотрю решение этой проблемы на примере MySQL и TeamSpeak server.
Корректировка init скрипта и запуск MySQL
Необходимо в файл /etc/init.d/mysql в функцию checkconfig() добавить строчки
if [ ! -d /var/run/mysqld ] ; then
checkpath -d -m 755 -o mysql:mysql /var/run/mysqld
fi
Ниже приведён пример кусочек файла:
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() с содержимым:
Ниже приведён пример кусочек файла:
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.
Ссылки
- Блог человека, который мне помог и стал основой данного хелпа