Script per avviare Lotus Domino su Linux
Sarà la varietà dei sistemi operativi della famiglia GNU/Linux che non permette a IBM di fornire nell'installazione di Domino per Linux una qualche procedura wizard per semplificare l'aggiunta di Domino come servizio al sistema operativo, sta di fatto che bisogna arrangiarsi.
Prendo spunto dal già ottimo script di Ivano Dapino, che mi sono permesso di rivedere principalmente per due motivi:
Per il secondo mi sono appoggiato alla
Questo è quello che è uscito:
Prendo spunto dal già ottimo script di Ivano Dapino, che mi sono permesso di rivedere principalmente per due motivi:
- il comando stop non funzionava perfettamente, il change directory fatto da root è inutile se poi
server -qviene dato in switch user (a meno che la home directory dell'utente con cui gira domino non sia/local/notesdata, che chiaramente non è il mio caso altrimenti non mi sarei accorto della cosa); - ipotizzare 5 secondi per lo spegnimento del server è un po' ottimistico, soprattutto sulla R8 dove basta qualche giorno di esecuzione e i classici servizi SMTP, IMAP e HTTP per sfiorare (o più spesso superare) il minuto.
Per il secondo mi sono appoggiato alla
pidof per ottenere il process id di server: finché pidof non ritorna "" (blank) vuol dire che il server è ancora in esecuzione/shutdown.
Questo è quello che è uscito:
#!/bin/sh
#
# chkconfig: 345 95 5
# description: questo script è usato per attivare il server Domino come processo in background
#
# Usare /etc/init.d/domino start|stop|status|restart
# Questo script prende spunto dallo script originale di IBM, con alcune personalizzazioni
# le variabili descritte di seguito devono essere impostate in base all'installazione dell'ambiente.
# DOM_HOME è la variabile che indica allo script dove è situata la notesdata
DOM_HOME=/local/notesdata
# DOM_USER è l'account Linux usato per far girare il server Domino
DOM_USER=domino
# DOM_PROG è la directory dove sono situati gli eseguibili di Domino
DOM_PROG=/opt/ibm/lotus/bin
# DOM_SHUTDOWN è il tempo massimo consentito per la chiusura del server Domino (secondi)
DOM_SHUTDOWN=300
# Source function library
. /etc/init.d/functions
# Set the prog variable for the status line of the code
prog=$DOM_PROG/server
# Does the lock file exist?
config () {
if [ -f $DOM_HOME/.jsc_lock ]; then
rm -f $DOM_HOME/.jsc_lock
fi
}
# Start del server
start() {
config
su - $DOM_USER -c "cd $DOM_HOME && $DOM_PROG/server > /dev/null 2>&1 &"
sleep 5
return 0
}
# Stop del server
stop() {
su - $DOM_USER -c "cd $DOM_HOME && $DOM_PROG/server -q"
sec=0
pid=$(__pids_pidof $DOM_PROG/server)
while [ ${#pid} -gt 0 ] && [ $sec -le $DOM_SHUTDOWN ]
do
sleep 10
sec=$[$sec+10]
pid=$(__pids_pidof $DOM_PROG/server)
done
if [ $sec -gt $DOM_SHUTDOWN ]
then
echo -n "Warning! Operation did not complete in a reasonable amount of time."
fi
return 0
}
# Restart del server
restart() {
stop
start
return 0
}
case "$1" in
start)
echo -n "Starting Domino server: "
start
echo ''
;;
stop)
echo -n "Stopping Domino server: "
stop
echo ''
;;
restart)
echo -n "Restarting Domino server: "
restart
echo ''
;;
status)
status $prog
;;
*)
echo "Usage: domino {start|stop|status|restart}"
exit 1
esac
exit $?
Per la cronaca, su CentOS 5.1 e Domino 8.0.2.

Commenta