2017-06-08 67 views
0

我想設置開機箱用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 /日誌/消息這樣的消息: enter image description here

我可以看到,箱子守護程序被重新啓動所有的時間,我不知道爲什麼它會被打死後開始

感謝

+0

兩個要更改的配置:1。修改Type = forking Type = simple; 2.在crate.sh中修改$ CRATE_HOME/bin/crate,刪除選項「-d」,因爲如果「-d」systemctl會認爲守護進程沒有啓動,並且會一直重啓,「-d」表示啓動在後臺 – MayI

回答

1

木板條已經提供了一個正式的RPM軟件包用於Red Hat Linux使用systemd。沒有必要編寫自己的服務文件。

查看文檔:https://crate.io/docs/install/local/linux/#red-hat

+0

非常感謝您的建議,我rpm安裝箱,檢查crate.service文件後,我意識到我錯過了什麼配置,我修復它並在我自己的箱子配置文件中啓動它,這裏是我的箱子。服務: – MayI

+0

[單位] 描述= CrateDB守護程序 = network.target [服務] 類型後=簡單 用戶= hadmin 組= hadmin ExecStart = /家庭/ hadmin/myproject的/箱/ bin中/ crate.sh開始 ExecStop =/home/hadmin/myproject/crate/bin/crate.sh stop StandardOutput =日誌 StandardError的軸頸= TimeoutStopSec = 20 LimitMEMLOCK =無窮 LimitNOFILE = 65536 重啓=總是 [安裝] WantedBy = multi-user.target – MayI