#!/bin/bash
### BEGIN INIT INFO
# Provides: influxd
# Required-Start: $all
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start the InfluxDB process
### END INIT INFO
# If you modify this, please make sure to also edit influxdb.service
# Command-line options that can be set in /etc/default/influxdb. These will override
# any config file values.
DEFAULT=/etc/default/influxdb
# Daemon options
INFLUXD_OPTS=
# Process name ( For display )
NAME=influxdb
# User and group
USER=influxdb
GROUP=influxdb
# Check for sudo or root privileges before continuing
if [ "$UID" != "0" ]; then
echo "You must be root to run this script"
exit 1
fi
# Daemon name, where is the actual executable If the daemon is not
# there, then exit.
DAEMON=/usr/bin/influxd
if [ ! -x $DAEMON ]; then
echo "Executable $DAEMON does not exist!"
exit 5
fi
# Configuration file
CONFIG=/etc/influxdb/influxdb.conf
# PID file for the daemon
PIDFILE=/var/run/influxdb/influxd.pid
PIDDIR=`dirname $PIDFILE`
if [ ! -d "$PIDDIR" ]; then
mkdir -p $PIDDIR
chown $USER:$GROUP $PIDDIR
fi
# Max open files
OPEN_FILE_LIMIT=65536
if [ -r /lib/lsb/init-functions ]; then
source /lib/lsb/init-functions
fi
# Logging
if [ -z "$STDOUT" ]; then
STDOUT=/dev/null
fi
if [ ! -f "$STDOUT" ]; then
mkdir -p $(dirname $STDOUT)
fi
if [ -z "$STDERR" ]; then
STDERR=/var/log/influxdb/influxd.log
fi
if [ ! -f "$STDERR" ]; then
mkdir -p $(dirname $STDERR)
fi
# Override init script variables with DEFAULT values
if [ -r $DEFAULT ]; then
source $DEFAULT
fi
function log_failure_msg() {
echo "$@" "[ FAILED ]"
}
function log_success_msg() {
echo "$@" "[ OK ]"
}
function start() {
# Check if config file exist
if [ ! -r $CONFIG ]; then
log_failure_msg "config file $CONFIG doesn't exist (or you don't have permission to view)"
exit 4
fi
# Check that the PID file exists, and check the actual status of process
if [ -f $PIDFILE ]; then
PID="$(cat $PIDFILE)"
if kill -0 "$PID" &>/dev/null; then
# Process is already up
log_success_msg "$NAME process is already running"
return 0
fi
else
su -s /bin/sh -c "touch $PIDFILE" $USER &>/dev/null
if [ $? -ne 0 ]; then
log_failure_msg "$PIDFILE not writable, check permissions"
exit 5
fi
fi
# Bump the file limits, before launching the daemon. These will
# carry over to launched processes.
ulimit -n $OPEN_FILE_LIMIT
if [ $? -ne 0 ]; then
log_failure_msg "Unable to set ulimit to $OPEN_FILE_LIMIT"
exit 1
fi
# Launch process
echo "Starting $NAME..."
if command -v start-stop-daemon &>/dev/null; then
start-stop-daemon \
--chuid $USER:$GROUP \
--start \
--quiet \
--pidfile $PIDFILE \
--exec $DAEMON \
-- \
-pidfile $PIDFILE \
-config $CONFIG \
$INFLUXD_OPTS >>$STDOUT 2>>$STDERR &
else
local CMD="$DAEMON -pidfile $PIDFILE -config $CONFIG $INFLUXD_OPTS >>$STDOUT 2>>$STDERR &"
su -s /bin/sh -c "$CMD" $USER
fi
# Sleep to verify process is still up
sleep 1
if [ -f $PIDFILE ]; then
# PIDFILE exists
if kill -0 $(cat $PIDFILE) &>/dev/null; then
# PID up, service running
log_success_msg "$NAME process was started"
return 0
fi
fi
log_failure_msg "$NAME process was unable to start"
exit 1
}
function stop() {
# Stop the daemon.
if [ -f $PIDFILE ]; then
local PID="$(cat $PIDFILE)"
if kill -0 $PID &>/dev/null; then
echo "Stopping $NAME..."
# Process still up, send SIGTERM and remove PIDFILE
kill -s TERM $PID &>/dev/null && rm -f "$PIDFILE" &>/dev/null
n=0
while true; do
# Enter loop to ensure process is stopped
kill -0 $PID &>/dev/null
if [ "$?" != "0" ]; then
# Process stopped, break from loop
log_success_msg "$NAME process was stopped"
return 0
fi
# Process still up after signal, sleep and wait
sleep 1
n=$(expr $n + 1)
if [ $n -eq 30 ]; then
# After 30 seconds, send SIGKILL
echo "Timeout exceeded, sending SIGKILL..."
kill -s KILL $PID &>/dev/null
elif [ $? -eq 40 ]; then
# After 40 seconds, error out
log_failure_msg "could not stop $NAME process"
exit 1
fi
done
fi
fi
log_success_msg "$NAME process already stopped"
}
function restart() {
# Restart the daemon.
stop
start
}
function status() {
# Check the status of the process.
if [ -f $PIDFILE ]; then
PID="$(cat $PIDFILE)"
if kill -0 $PID &>/dev/null; then
log_success_msg "$NAME process is running"
exit 0
fi
fi
log_failure_msg "$NAME process is not running"
exit 1
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
status)
status
;;
version)
$DAEMON version
;;
*)
# For invalid arguments, print the usage message.
echo "Usage: $0 {start|stop|restart|status|version}"
exit 2
;;
esac
_Score_
- 粉丝: 1
- 资源: 18
最新资源
- 滑膜控制下的差动制动防侧翻稳定性精准控制 通过上层滑膜控制产生横摆力矩,结合下层制动力矩分配策略,实现车辆防侧翻稳定控制 联合仿真验证其有效性,资料完备 ,基于滑膜控制的差动制动防侧翻稳定性控制,上
- "移相全桥电源系统仿真建模:全面解析Matlab Simulink仿真与参数设计学习资料集",2KW移相全桥整机Matlab Simulink仿真模型电源学习资料,报告mathcad参数设计,模型搭建
- 基于风光不确定性及信息间隙决策理论的碳捕集综合能源系统鲁棒调度优化策略研究,考虑风光不确定性和IGDT信息间隙决策的综合能源系统优化调度 参考文献:基于信息间隙决策理论的碳捕集电厂调度 非完全复献
- CRUISE纯电动车仿真模型与Simulink DLL联合仿真:电制动优先能量回收策略详解与搭建指南(附详细文档),CRUISE纯电动车仿真模型,simulink DLL联合仿真,实现电制动优先能量回
- 车辆紧急防避撞AEB控制算法实现原理与仿真步骤详解:制动模型、模糊控制、逆动力学及阻力计算,车辆紧急防避撞AEB控制,模型包含建立驾驶员制动模型来模拟制动过程,同时加入模糊控制实现期望减速度的计算,加
- 基于LQR算法的横摆角速度跟踪控制技术研究:四轮独立驱动与动力学模型应用,四轮独立驱动横摆角速度控制,LQR 基于LQR算法的 基于二自由度动力学方程,通过主动转向afs和直接横摆力矩dyc实现的横摆
- 西门子S7-1200与S7-1500的动态加密功能块程序管理:设定停机运行时间,专防不守信客户实用指南及发货清单 ,西门子S7-1200 1500动态加密功能块程序,可以设置停机运行时间,时间到达设备
- MATLAB环境下深度学习预测NASA涡扇发动机退化仿真数据集剩余寿命方法,MATLAB环境下一种基于深度学习的NASA涡扇发动机 化仿真数据集剩余使用寿命预测方法 算法运行环境为matlab r2
- 异步电机矢量控制的Simulink模型设计与实现,异步电机矢量控制simulink模型 ,核心关键词:异步电机;矢量控制;Simulink模型;控制策略;仿真模型;电力传动系统 ,"异步电机矢量控制的
- 基于动态窗口算法的AGV仿真避障:起点至目标点的实时路径规划与障碍物处理,基于动态窗口算法的AGV仿真避障 可设置起点目标点,设置地图,设置移动障碍物起始点目标点,未知静态障碍物 动态窗口方法(Dyn
- 基于三菱PLC的定长送料程序:触摸屏操作,伺服与步进驱动,精准点动与定位控制,定长送料程序,三菱PLC加显触摸屏 伺服或者步进都可以 点动 相对定位 绝对定位 ,定长送料程序; 三菱PLC; 显触摸
- 基于A*算法的三维路径规划算法在无人机中的MATLAB实现,基于A* 算法的无人机三维路径规划算法,MATLAB编程实现 ,核心关键词:A*算法; 无人机; 三维路径规划; MATLAB编程实现
- PID与LQR主动悬架模型对比:汽车平顺性仿真及源代码详解,【PID和LQR主动悬架模型对比】 分别建立了PID控制和LQR控制的的主动悬架模型,比较两种控制器的控制效果 以悬架主动力
- 一维光子晶体态密度案例解析与探讨:理论与实践结合的研究实践,一维光子晶体态密度案例 ,一维光子晶体; 态密度; 案例; 实验结果; 理论分析,一维光子晶体态密度案例:光子态密度的研究与应用
- 级联H桥并网系统性能测试:精准电流控制下的电压稳定性与畸变率优化,级联H桥并网 10KV 每相12个H桥,单个H桥直流电压为850V,采用电流闭环控制 为了测试系统控制性能效果,在1s时,控制输出
- 级联H桥三相逆变器:离散化仿真下的开闭环控制策略与电压电流双闭环控制实现,级联H桥 离网三相逆变器采用级联H桥多电平拓扑,每个H桥直流测电压为24V,5个H桥串联(电压,H桥个数可以自己调加),系统
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈