
Версия Linux на сервере — Centos 7.0.
Сервер Teamspeak запускается с помощью этой команды:
./opt/teamspeak3-server_linux-x86/ts3server_startscript.sh start
У моего сервера нет 100% аптайма. Поэтому я хочу, чтобы серверная программа запускалась автоматически с использованием пользователя без прав root.
решение1
Нашел это решение:
crontab -e
i
@reboot /opt/teamspeak3-server_linux-x86/ts3server_startscript.sh restart
<esc>
:wq
решение2
Если вам вообще не требуются root
привилегии для запуска сервера, вы можете использовать что-то вроде
sudo -u <username> ./opt/teamspeak3-server_linux-x86/ts3server_startscript.sh start
чтобы запустить его как пользователь <username>
.
Эту командную строку необходимо поместить в файл, который выполняется при запуске.
IIRC, есть файл для локальных вещей, названный примерно как 99-local
в /etc/init.d/
. Если нет, вы можете написать его самостоятельно, используя какой-нибудь другой файл запуска в качестве шаблона. Чтобы запланировать запуск файла во время запуска, используйте следующую команду:
chkconfig --level 345 <your file name> on
тогда как <your file name>
относительно /etc/init.d/
.
Обратите внимание, что необходимо указать sudo
полный путь (например, /usr/bin/sudo
), чтобы предотвратить возможность выполнения другой версии, sudo
размещенной где-либо в пути поиска, а также следует разрешить .
in ./opt/...
(если она выполняется из корневого каталога, это будет /opt/...
).