我想設置開機箱用redhat的一個systemd服務文件,所以我寫了一個箱子服務systemd文件:如何編寫箱
箱版本:1.1.2
以下是箱子。服務:
[Unit]
Description=crate daemon
After=network.target
[Service]
Type=forking
ExecStart=/usr/bin/su - hadmin -c '/home/hadmin/aisinofp/crate/bin/crate.sh start'
ExecStop=/usr/bin/su - hadmin -c '/home/hadmin/aisinofp/crate/bin/crate.sh stop'
Restart=always
[Install]
WantedBy=multi-user.target
的crate.sh是:
#!/bin/bash
source /home/hadmin/myproject/conf/env.sh
if [ "$1" = "start" ]
then
$CRATE_HOME/bin/crate -d
elif [ "$1" = "stop" ]
then
pid=$(ps -ef|grep io.crate.bootstrap.CrateDB |grep jar |awk '{print $2}')
echo "KILLING cratedb PROCESS "$pid
kill -9 $pid
fi
的env.sh爲:
#!/bin/bash
# set ulimit
#ulimit -n 655360
export JAVA_HOME=/usr/java/default
export JRE_HOME=/usr/java/default
PATH=$JAVA_HOME/bin:$PATH
# environment for all Projects
export TD_BASE=/home/hadmin
export TD_HOME=$TD_BASE/myproject
export TD_DATA=$TD_BASE/data
# zookeeper environment
export ZOO_HOME=$TD_BASE/zookeeper
export ZOO_LOG_DIR=$ZOO_HOME/logs
PATH=$ZOO_HOME/bin:$PATH
# cratedb environment
export CRATE_HEAP_SIZE=4g
export CRATE_HOME=/home/hadmin/crate
PATH=$CRATE_HOME/bin:$PATH
# activemq environment
export activemq_data=/home/hadmin/data/activemq
export activemq_base=/home/hadmin/activemq
export activemq_conf=$activemq_base/conf
PATH=$activemq_base/bin:$PATH
export PATH
,當我寫完這些文件,我開始使用「systemctl啓動crate.service」,但我在/ var /日誌/消息這樣的消息:
我可以看到,箱子守護程序被重新啓動所有的時間,我不知道爲什麼它會被打死後開始
感謝
兩個要更改的配置:1。修改Type = forking Type = simple; 2.在crate.sh中修改$ CRATE_HOME/bin/crate,刪除選項「-d」,因爲如果「-d」systemctl會認爲守護進程沒有啓動,並且會一直重啓,「-d」表示啓動在後臺 – MayI