使用 init.d 运行两个脚本

使用 init.d 运行两个脚本

我有一个 TeamSpeak3 服务器的启动脚本,在/etc/init.d启动时运行。

#! /bin/sh
### 开始初始化信息
# 提供:ts3
# 必需启动:$network mysql
# 必需停止:$network
# 默认开始:2 3 4 5
# 默认停止:0 1 6
# 简短描述:TeamSpeak3 服务器守护进程
# 描述:启动/停止/重新启动 TeamSpeak 服务器守护程序
### 结束初始化信息

设置-e

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="TeamSpeak3 服务器"
名称=teamspeak3-服务器
用户=teamspeak3
DIR=/opt/teamspeak3-server
选项=inifile=ts3server.ini
DAEMON=$DIR/ts3server_startscript.sh
#PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

# 如果包已被删除,则优雅退出。
测试-x $DAEMON ||出口0

睡觉2
sudo -u $USER $DAEMON $1 $OPTIONS

我需要这样的事情发生:

  1. 运行立即退出的脚本./MyScript,位于 TS3 目录中
  2. 等一段时间
  3. 运行将保持运行的实际守护进程

我不太擅长 Unix 脚本,我只需要用它来运行一个服务器。我还可能提到我正在运行最新的 Ubuntu。

感谢您的帮助,krejcar25

答案1

DAEMON很简单,只需在脚本最后一行中运行 TS3 的命令之前运行它,然后将sleep命令设置为 5 秒,例如,脚本将如下所示:

#! /bin/sh
### BEGIN INIT INFO
# Provides:          ts3
# Required-Start:    $network mysql
# Required-Stop:     $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: TeamSpeak3 Server Daemon
# Description:       Starts/Stops/Restarts the TeamSpeak Server Daemon
### END INIT INFO

set -e

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="TeamSpeak3 Server"
NAME=teamspeak3-server
USER=teamspeak3
DIR=/opt/teamspeak3-server
OPTIONS=inifile=ts3server.ini
DAEMON=$DIR/ts3server_startscript.sh
#PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0

sleep 2
#####################################################
$DIR/MyScript
sleep 5
#####################################################
sudo -u $USER $DAEMON $1 $OPTIONS

var$DER引用 TS3 服务目录/opt/teamspeak3-server

相关内容