#!/bin/bash
now=$(date +%Y%m%d)
command='java -Xms128m -Xmx2048m -jar dcheck.jar'
log_file_url="/${now}_dm.log"
start(){
if [ "$log_file_url" != "" ]; then
exec $command > "$log_file_url" &
else
exec $command &
fi
}
stop(){
ps -ef | grep "$command" | awk '{print $2}' | while read pid
do
C_PID=$(ps --no-heading $pid | wc -l)
echo "当前PID=$pid"
if [ "$C_PID" == "1" ]; then
echo "PID=$pid 准备结束"
kill -9 $pid
echo "PID=$pid 已经结束"
else
echo "PID=$pid 不存在"
fi
done
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
printf 'Usage: %s {start|stop|restart}\n' "$prog"
exit 1
;;
esac
如果不想输出日志,因为输出日志会造成磁盘空间满 输出到/dev/null
log_file_url="/dev/null"
本文介绍了一个使用Bash脚本实现服务启动、停止和重启的实用案例。脚本通过日期获取当前时间,设置Java参数并指定日志文件路径,支持输出日志到指定文件或直接到标准输出。此外,还提供了服务状态检查和PID管理功能。
33万+

被折叠的 条评论
为什么被折叠?



