Verifique o pid do GeoServer rodando com o Jetty

1

Eu instalei o GeoSerer rodando com o Jetty. Eu uso monit para monitorar ou não o GeoServer e preciso de pid no processo.

Alguém pode me dizer como fazer isso?

    
por Vorleak Chy 16.02.2011 / 08:49

1 resposta

2

supondo que você esteja usando os scripts padrão de inicialização / desligamento, a maneira rápida e suja é:

gsrvpid='ps axuwwwww|grep GEOSERVER | grep -v grep | awk ' { print $2 ; } ''
echo $gsrvpid
25271

(Eu apenas busquei um padrão que deve corresponder apenas ao processo no qual estou interessado, mas você pode obter resultados estranhos se o padrão também corresponder a outro)

a maneira correta é envolver os scripts de inicialização / desligamento em um script de inicialização que salvará o pid em algum lugar no sistema de arquivos porque podemos notar que os usuários Java realmente não se importam em fornecer bons scripts de gerenciamento de serviço.

script de inicialização (muito simplificado):

#!/bin/sh

export GEOSERVER_HOME=/root/tmp/geoserver-2.0.2
cd ${GEOSERVER_HOME} || exit
echo $$ > /var/run/geoserver.pid
exec ./bin/startup.sh

script de desligamento (muito simplificado):

#!/bin/sh
export GEOSERVER_HOME=/root/tmp/geoserver-2.0.2
cd ${GEOSERVER_HOME} || exit
./bin/shutdown.sh
rm -f /var/run/geoserver.pid

você pode obter o pid do processo com

cat /var/run/geoserver.pid

assim:

ps  www -p 'cat /var/run/geoserver.pid'
  PID TTY      STAT   TIME COMMAND
26394 pts/4    Sl+    0:12 /usr/lib/jvm/java-6-sun/bin/java -DGEOSERVER_DATA_DIR=/root/tmp/geoserver-2.0.2/data_dir -Djava.awt.headless=true -DSTOP.PORT=8079 -DSTOP.KEY=geoserver -jar start.jar

ou assim:

kill -0 'cat /var/run/geoserver.pid' && echo "my geo thing is alive"
my geo thing is alive
    
por 16.02.2011 / 11:09