Executando um arquivo jar executável quando o sistema é iniciado

1

Eu tenho um arquivo jar executável java, que estou tentando executar em um terminal.

Eu preciso executar o projeto automaticamente para que o arquivo jar seja executado sempre que eu iniciar o PC como um serviço do sistema.

    
por YogeshKarnam 31.05.2016 / 11:20

5 respostas

0

Você pode fazer isso adicionando o comando ao fim de /etc/rc.local , você terá que usar o acesso sudo para editar este arquivo.

Portanto, este comando deve funcionar para você, substitua your_executable.jar pelo seu arquivo jar real.

sudo echo 'java -jar your_executable.jar' >> /etc/rc.local
    
por storm 31.05.2016 / 11:37
0

Primeiro você precisa ter o java instalado no seu Ubuntu.

Segundo, um arquivo jar não é um arquivo executável a ser executado, mas você precisa que o java seja executado na inicialização, então você precisa criar um script, torná-lo executável ou colocar seus comandos em seu arquivo /etc/rc.local:

java -jar file.jar & amp;

sair 0

BOA SORTE

    
por farmuel Angel 31.05.2016 / 11:40
0

Tente isto:

#!/bin/sh
#
# chkconfig: 345 50 83
#
### BEGIN INIT INFO
# Short description: Trigger Beamer on system startup
# Description: Trigger blupay beamer on system start up
### END INIT INFO

#Source function library
. /etc/rc.d/init.d/functions

#targets beamer config file
if [ -f /etc/sysconfig/yourapp]; then
    source /etc/sysconfig/yourapp
fi


#start httpd in the C locale by default.
YOURAPP_LANG=${YOURAPP_LANG-"java"}

# Path to .jar file.
yourapp=path/path_a/path_b
prog=app
pidfile=${PIDFILE-/var/run/yourapp/app.pid}
lockfile=${LOCKFILE-/var/lock/subsys/app}
RETVAL=0

start() { 
    echo -n "starting $prog"
    LANG=${YOURAPP_LANG}
    RETVAL=$?
    java -jar ${yourapp}/yourjarfilename.jar
    echo
        [ $RETVAL = 0 ] && touch ${lockfile}
        return $RETVAL
}
stop() {
    echo -n $"Stopping $prog: "
        killproc -p ${pidfile} -d  $app
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
}
reload() {
    echo -n $"Reloading $prog: "
    if ! LANG=$BEAMER_LANG $app$OPTIONS -t >&/dev/null; then
        RETVAL=6
        echo $"not reloading due to configuration syntax error"
        failure $"not reloading $beamer due to configuration syntax error"
    else
        # Force LSB behaviour from killproc
        LSB=1 killproc -p ${pidfile} $app -HUP
        RETVAL=$?
        if [ $RETVAL -eq 7 ]; then
            failure $"app shutdown"
        fi
    fi
    echo
}

# See how we were called.
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  status)
        status -p ${pidfile} $app
        RETVAL=$?
        ;;
  restart)
        stop
        start
        ;;
  force-reload|reload)
        reload
        ;;
  *)
        echo $"Usage: $prog {start|stop|restart||force-reload|reload|status}"
        RETVAL=2
esac

exit $RETVAL  

Vá para /etc/sysconfig/ , crie um arquivo yourapp : Adicione o seguinte conteúdo:

#configuration file for blupay beamer

#
#
# To pass additional options (for instance, -D definitions) to the
# httpd binary at startup, set OPTIONS here.
# Add options only if you want to
#OPTIONS=
#

#
# By default, bemaer process is started in the java locale; to 
# change the locale in which the server runs, the BEAMER_LANG
# variable can be set.
#
#YOURAPP_LANG=java
#

#
#By default, your app will create a app.pid 
#
#PID_FILE=/var/run/app/appp.pid
#

Agora você deve poder executá-lo como:

sudo service app start  

Certifique-se de substituir app , YOURAPP pelos nomes próprios

    
por Ajay Kulkarni 31.05.2016 / 13:01
0

Uma solução mais simples do que executar como um serviço do sistema é usar supervisord . Consulte as instruções completas no link

Versão resumida

sudo apt install -y supervisor

> cat /etc/supervisor/conf.d/tick.conf 
; tick config file
[program:tick]
command=/tmp/ticker.bash
environment=CTX="bogus-42"


> cat /tmp/ticker.bash
#!/bin/bash
while true ; do
  echo "tick   CTX='${CTX}'   SUPERVISOR_PROCESS_NAME=${SUPERVISOR_PROCESS_NAME}   $(date)"
  sleep 1
done


# ensure supervisor is running
> sudo systemctl restart  supervisor

# ensure tick task is running
> sudo supervisorctl start all
> sudo supervisorctl status
tick      RUNNING   pid 17946, uptime 0:06:11


> d /var/log/supervisor/*                                        
-rw-r--r-- 1 root root  1607 Nov 22 15:17 /var/log/supervisor/supervisord.log
-rw------- 1 root root     0 Nov 22 15:16 /var/log/supervisor/tick-stderr---supervisor-S4zZDy.log
-rw------- 1 root root 16548 Nov 22 15:19 /var/log/supervisor/tick-stdout---supervisor-5z8GTx.log


> sudo tail -3 /var/log/supervisor/tick-stdout---supervisor-5z8GTx.log
tick   CTX='bogus-42'   SUPERVISOR_PROCESS_NAME=tick   Tue Nov 22 15:20:12 PST 2016
tick   CTX='bogus-42'   SUPERVISOR_PROCESS_NAME=tick   Tue Nov 22 15:20:13 PST 2016
tick   CTX='bogus-42'   SUPERVISOR_PROCESS_NAME=tick   Tue Nov 22 15:20:14 PST 2016
    
por Alan Thompson 23.11.2016 / 00:35
0

Estou usando o Ubuntu 16.04 com o sabor do Xubuntu. Seguindo as etapas necessárias para executar o jar runnable na inicialização.

  1. Criar script de shell que pode executar o jar runnable
  2. Torne esse script executável.
  3. Ir para a configuração - > Sessão e Startup

    
por Bhushan Patil 31.03.2017 / 07:29