2017-06-08 2 views
0

Je veux mettre botte de caisse avec la RedHat, donc j'écrire un fichier de service systemd pour caisse:comment écrire un fichier de service systemd pour caisse

version caisse: 1.1.2

suivant est caisse. Service:

[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 

le crate.sh est:

#!/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 

le env.sh est:

#!/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 

quand je fini d'écrire ces fichiers, je commencer à utiliser "systemctl commencer crate.service", mais j'ai des messages comme celui-ci dans/var/logs/message: enter image description here

Je peux voir que la démon caisse a être redémarré tout le temps, je ne sais pas pourquoi il serait tué après a commencé

grâce

+0

Deux config pour changer: 1. modifier Type = forking à Type = simple; 2. Dans crate.sh, modifiez $ CRATE_HOME/bin/caisse, supprimez l'option "-d", car si "-d" le système pense que le démon n'est pas démarré et redémarrera tout le temps, "-d" signifie démarrer en arrière-plan – MayI

Répondre

1

Crate fournit déjà un paquet RPM officiel pour Red Hat Linux qui utilise systemd. Il n'est pas nécessaire d'écrire votre propre fichier de service.

Voir la documentation: https://crate.io/docs/install/local/linux/#red-hat

+0

Merci beaucoup pour votre suggestion, je rpm installer caisse, après avoir vérifié le fichier crate.service, je réalise ce que la configuration me manque, je le répare et le démarrer dans mon propre fichier de configuration de caisse, voici ma caisse. service: – MayI

+0

[Unité] description = CrateDB démon Après = network.target [service] type = simple, utilisateur = hadmin = Groupe hadmin ExecStart =/home/hadmin/myproject/caisse/bin/crate.sh démarrer ExecStop =/home/hadmin/monprojet/crate/bin/crate.sh stop StandardOutput = journal StandardError = Journal TimeoutStopSec = 20 LimitMEMLOCK = infini LimitNOFILE = 65536 restart = toujours [Installer] WantedBy = multi-user.target – MayI