Как запустить сервер TeamSpeak при перезагрузке от имени определенного пользователя

Как запустить сервер TeamSpeak при перезагрузке от имени определенного пользователя

Версия 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/...).

Связанный контент