如何在启动时启动 teampeak 3,ubuntu 服务器 12.04

Joc*_*ers 2 ubuntu init.d

所以我对linux很陌生,但我开始理解它。我有一个 Ubuntu Server 12.04 系统,全新安装,并在其上安装了 Teamspeak 3 服务器:

$ sudo useradd teamspeak
(provided user info and password)
$ su teamspeak
(entered password)
$ cd /home/teamspeak
$ wget http://ftp.4players.de/pub/hosted/ts3/releases/3.0.10.3/teamspeak3-server_linux-amd64-3.0.10.3.tar.gz
(download teamspeak.tar.gz)
$ tar -zxvf teamspeak3-server_linux-amd64-3.0.10.3.tar.gz
(unpacked the file to teamspeak3-server_linux-amd64)
$ mv teamspeak3-server_linux-amd64 server
(server is no located in /home/teamspeak/server)
$ cd ./server
$ ./ts3server_minimal_runscript.sh createinifile=1
(initialized the server)
$ ./ts3server_startscript.sh start
(started the server)
Run Code Online (Sandbox Code Playgroud)

现在,当我重新启动服务器(例如$ sudo reboot)时,服务器不会启动。显然是因为我没有配置任何东西,/etc/init.d但我不知道如何做到这一点。

我希望服务器像使用/home/teamspeak/server/ts3server_startscript.sh start脚本一样启动,由用户运行teamspeak

我遵循了几个指南,但他们没有用。有人能帮我吗?

Kaz*_*lfe 5

我建议创建一个 Upstart 脚本。

首先,您要创建脚本本身: sudo nano /etc/init/ts-server.conf

复制并粘贴此骨架并进行您需要的任何更改:

# description "start and stop the TS server"

console log # Log events to console

exec start-stop-daemon --start --chdir /home/teamspeak/server/ --chuid teamspeak \
    --exec /home/teamspeak/server/ts3server_startscript.sh start

 start on runlevel [2345] # Tell when to start
stop on runlevel [^2345] # Tell when to stop

respawn # Block excess respawn
respawn limit 20 5 # Ditto
Run Code Online (Sandbox Code Playgroud)

保存该文件,转到/home/teamspeak/server/并创建一个文件ts3server_upstart.sh
内容:

#!/bin/bash
/home/teamspeak/server/ts3server_startscript.sh start
Run Code Online (Sandbox Code Playgroud)

保存,将其标记为可执行,完成!这将开始启动,并可以手动启动/停止/重新启动使用sudo service ts-server startsudo service ts-server stopsudo service ts-server restart分别。

编辑:这实际上可能不会停止 TeamSpeak。我对 TS 知之甚少,开始告诉你它是否会或不会。


小智 5

这是我使用的新贵脚本,主要是对 Mew 的抄袭:

description "Teamspeak 3"

console log # Log events to console

setuid teamspeak
setgid teamspeak

exec /opt/teamspeak/ts3server_minimal_runscript.sh

start on runlevel [2345] # Tell when to start
stop on runlevel [^2345] # Tell when to stop

respawn # Block excess respawn
respawn limit 20 5 # Ditto
Run Code Online (Sandbox Code Playgroud)

它需要新贵1.4或更高版本的setuid/ setgid,但Ubuntu的12.04规定。如果您没有,您可以将 exec 行exec su -s /bin/sh -c /opt/teamspeak/ts3server_minimal_runscript.sh teamspeak改为。

主要区别在于它使用ts3server_minimal_runscript.sh代替,而不是分叉。ts3server_startscript.sh旨在用作一种初始化脚本,因此它会分叉 - 这对于暴发户来说不是必需的。当与 upstart 一起使用时,这意味着您不能执行诸如service ts-server status或 之类的命令service ts-server stop。有了这个脚本,你就可以了。