Bonjour
Je suis la revue linux magazine n°120 c'est une PKI par EJBCA.
Mon script bash ne fonctionne pas. je travaille sur une debian .Sa fais 3jours que je suis dessus.
Je l'exécute résultat:
/etc/init.d/jboss: line 49: syntax error near unexpected token `fi'
/etc/init.d/jboss: line 49: ` fi '
Mes problèmes:
Je vois bien qu'il ni a pas de si pour débuter ma boucle mais je suppose qu'un fichier doit être appeler au cour de mon bash je vois pas ou.
L'autre solution plus probable c'est qu'il manque le début de boucle.
De plus je vais avoir le même problème avec le finselon qui na pas de selon en début de boucle.
Si quelqu'un peu me corriger Merci d'avance.
#!/bin/bash
export JAVA_HOME=/usr/lib/jvm/java/jre
export JBOSS_HOME=/opt/jboss/
export JBOSS_HOST=0.0.0.0
export ANT_HOME=/opt/ant
export EJBCA_HOME=/usr/src/ejbca
export JBOSS_CONSOLE=/var/log/jboss.log
export JBOSS_USER=jboss
export JBOSS_SERVER=default
export PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$PATH
########
JBOSS_HOME=${JBOSS_HOME:-"/usr/local/jboss"}
JBOSS_USER=${JBOSS_USER:-"jboss"}
#EJBCA_HOME=${EJBCA_HOME:-"/etc/profile.d/ejbca.sh"}
JAVAPTH=${JAVAPTH:-"/usr/local/jdk/bin"}
#JAVAPTH=${JAVA_HOME}:/bin
JBOSS_CONF=${JBOSS_CONF:-"default"}
JBOSS_BIN_ADDR=${JBOSS_HOST:+"-b $JBOSS_HOST"}
JBOSSCP=${JBOSSCP:-"$JBOSS_HOME/bin/shutdown.jar:$JBOSS_HOME/client/jnet.jar"}
JBOSSSH=${JBOSSSH:-"$JBOSS_HOME/bin/run.sh -c $JBOSS_CONF $JBOSS_BIND_ADDR"}
if [ "$JBOSS_USER" = "RUNASIS" ]; then
SUBIT=""
else
SUBIT="su - $JBOSS_USER -c "
fi
if [ -n "$JBOSS_CONSOLE" -a ! -d "$JBOSS_CONSOLE" ]; then
touch $JBOSS_CONSOLE
if [ ! -z "SUBIT" ]; then
chown $JBOSS_USER $JBOSS_CONSOLE
fi
fi
if [ -n "$JBOSS_CONSOLE" -a ! -f "$JBOSS_CONSOLE" ]; then
echo "WARNING: location for saving console log invalid:$JBOSS_CONSOLE"
echo "WARNING: ignoring it and using /dev/null"
JBOSS_CONSOLE="/dev/null"
fi
JBOSS_CONSOLE=${JBOSS_CONSOLE:-"/dev/null"}
JBOSS_CMD_START="cd $JBOSS_HOME/bin; $JBOSSSH"
JBOSS_CMD_STOP=${JBOSS_CMD_STOP:-"java -classpath $JBOSSCP org.jboss.shutdown --shutdown"}
if [ -z "`echo $PATH | grep $JAVAPTH`" ]; then
export PATH=$PATH:$JAVAPTH
fi
if [ ! -d "$JBOSS_HOME" ]; then
echo JBOSS_HOME does not exist as a valid directory : $JBOSS_HOME
exit 1
fi
echo JBOSS_CMD_START=$JBOSS_CMD_START
$SUBIT "$JBOSS_CMD_START >>${JBOSS_CONSOLE}" &
fi
;;
stop)
#/etc/init.d/jboss stop
if [ -z "$SUBIT" ]; then
$JBOSS_CMD_STOP
if
#else
$SUBIT "$JBOSS_CMD_STOP"
fi
;;
restart)
#/etc/init.d/jboss restart
$0 stop
$0 start ;; *)
echo "usage: $0 (start|stop|restart|help)"
esac
# Exemples + colorisation de code
Posté par fyah . Évalué à 6.
En utilisant un soft qui "colorise" ton code, tu vois immédiatement que ton premier problème est du a:
46. fi
47. echo JBOSS_CMD_START=$JBOSS_CMD_START
48. $SUBIT "$JBOSS_CMD_START >>${JBOSS_CONSOLE}" &
49. fi
donc le if précédent est clos ligne 46, et le problème c'est que à ligne 49, tu clos un autre bloque if, qui n'a jamais été ouvert...
Solution: ajouter une condition entre ligne 46 et 47 ou bien supprimer la ligne 49.
Concernant le "selon" (je dirais plutôt switch):
Un exemple parmi tous les scripts d'init sera parfait pour ajouter ligne 11 par exemple:
case "$1" in
start)
Cdlt,
[^] # Re: Exemples + colorisation de code
Posté par bubar🦥 (Mastodon) . Évalué à 2.
ps : toutes ces variables, au début, tu voudrais pas les sortir de ton script ? les coller dans un fichier "de conf" qui est sourcé par le script ?
# PKI par EJBCA
Posté par berimbau . Évalué à 4.
Bah peut être que si tu suivais l'article mot par mot tu devrais y arriver! :D
voila le script a mettre, dans le tiens t'as oublié de mettre quelques lignes à partir de la ligne 47(dans ta version) donc c'est un peu normal!!
#!/bin/sh
# $Id: jboss_init_redhat.sh 81068 2008-11-14 15:14:35Z dimitris@jboss.org $
# JBoss Control Script
# To use this script run it as root - it will switch to the specified user
# Here is a little (and extremely primitive) startup/shutdown script
# for RedHat systems. It assumes that JBoss lives in /usr/local/jboss,
# it's run by user 'jboss' and JDK binaries are in /usr/local/jdk/bin.
# All this can be changed in the script itself.
# Either modify this script for your requirements or just ensure that
# the following variables are set correctly before calling the script.
export JAVA_HOME=/usr/lib/jvm/java/jre
export JBOSS_HOME=/opt/jboss
# export de la variable d'environnement JBOSS_HOST
export JBOSS_HOST=0.0.0.0
# Ajout des variables d'environnement pour ANT
export ANT_HOME=/opt/ant
# Ajout de la variable d'environnement pour EJBCA
export EJBCA_HOME=/usr/src/ejbca
# Fichier de log Jboss
export JBOSS_CONSOLE=/var/log/jboss/jboss.log
# Utilisateur à utiliser pour démarrer jboss
export JBOSS_USER=jboss
# Serveur jboss à utiliser
export JBOSS_SERVER=default
# Ajout du répertoire dans le PATH système
export PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$PATH
################################################################################
#define where jboss is - this is the directory containing directories log, bin, conf etc
JBOSS_HOME=${JBOSS_HOME:-"/usr/local/jboss"}
#define the user under which jboss will run, or use 'RUNASIS' to run as the current user
JBOSS_USER=${JBOSS_USER:-"jboss"}
#make sure java is in your path
#JAVAPTH=${JAVAPTH:-"/usr/local/jdk/bin"}
JAVAPTH=${JAVA_HOME}:/bin
#configuration to use, usually one of 'minimal', 'default', 'all'
JBOSS_CONF=${JBOSS_CONF:-"default"}
#if JBOSS_HOST specified, use -b to bind jboss services to that address
JBOSS_BIND_ADDR=${JBOSS_HOST:+"-b $JBOSS_HOST"}
#define the classpath for the shutdown class
JBOSSCP=${JBOSSCP:-"$JBOSS_HOME/bin/shutdown.jar:$JBOSS_HOME/client/jnet.jar"}
#define the script to use to start jboss
JBOSSSH=${JBOSSSH:-"$JBOSS_HOME/bin/run.sh -c $JBOSS_CONF $JBOSS_BIND_ADDR"}
if [ "$JBOSS_USER" = "RUNASIS" ]; then
SUBIT=""
else
SUBIT="su - $JBOSS_USER -c "
fi
if [ -n "$JBOSS_CONSOLE" -a ! -d "$JBOSS_CONSOLE" ]; then
# ensure the file exists
touch $JBOSS_CONSOLE
if [ ! -z "$SUBIT" ]; then
chown $JBOSS_USER $JBOSS_CONSOLE
fi
fi
if [ -n "$JBOSS_CONSOLE" -a ! -f "$JBOSS_CONSOLE" ]; then
echo "WARNING: location for saving console log invalid: $JBOSS_CONSOLE"
echo "WARNING: ignoring it and using /dev/null"
JBOSS_CONSOLE="/dev/null"
fi
#define what will be done with the console log
JBOSS_CONSOLE=${JBOSS_CONSOLE:-"/dev/null"}
JBOSS_CMD_START="cd $JBOSS_HOME/bin; $JBOSSSH"
JBOSS_CMD_STOP=${JBOSS_CMD_STOP:-"java -classpath $JBOSSCP org.jboss.Shutdown --shutdown"}
if [ -z "`echo $PATH | grep $JAVAPTH`" ]; then
export PATH=$PATH:$JAVAPTH
fi
if [ ! -d "$JBOSS_HOME" ]; then
echo JBOSS_HOME does not exist as a valid directory : $JBOSS_HOME
exit 1
fi
echo JBOSS_CMD_START = $JBOSS_CMD_START
case "$1" in
start)
cd $JBOSS_HOME/bin
if [ -z "$SUBIT" ]; then
eval "$JBOSS_CMD_START >>${JBOSS_CONSOLE}" &
else
$SUBIT "$JBOSS_CMD_START >>${JBOSS_CONSOLE}" &
fi
;;
stop)
if [ -z "$SUBIT" ]; then
$JBOSS_CMD_STOP
else
$SUBIT "$JBOSS_CMD_STOP"
fi
;;
restart)
$0 stop
$0 start
;;
*)
echo "usage: $0 (start|stop|restart|help)"
esac
voila j'espère que ça résoudra tes problèmes et que tu pourra faire joujou avec EJBCA :D
Bon courage
[^] # Re: PKI par EJBCA
Posté par zitro . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.