所以我对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
。
我遵循了几个指南,但他们没有用。有人能帮我吗?
我建议创建一个 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 start
,sudo service ts-server stop
和sudo 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
。有了这个脚本,你就可以了。
归档时间: |
|
查看次数: |
31308 次 |
最近记录: |