Запуск исполняемого файла JAR при запуске системы

У меня есть исполняемый jar-файл java, который я пытаюсь запустить в терминале.

Мне нужно автоматически запустить проект, чтобы файл jar запускался всякий раз, когда я запускаю ПК, как системная служба.

2
задан 1 June 2016 в 02:05

6 ответов

Можно сделать это путем добавления команды в конец /etc/rc.local, необходимо будет использовать sudo доступ для редактирования этого файла.

, Таким образом, эта команда должна работать на Вас, заменить your_executable.jar Вашим фактическим файлом банки.

sudo echo 'java -jar your_executable.jar' >> /etc/rc.local
0
ответ дан 1 June 2016 в 02:05

Сначала необходимо было установить Java в человечности.

111-секундный файл банки не является исполняемым файлом для выполнения, но Вам нужен Java для выполнения при запуске, таким образом, необходимо сделать сценарий, сделайте его исполняемым файлом или поместите команды в/etc/rc.local файл:

Java - банка file.jar &

выход 0

УДАЧИ

0
ответ дан 1 June 2016 в 02:05

Попробуйте это:

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

Переходят в /etc/sysconfig/, создают файл yourapp: Добавьте следующее содержание:

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

Теперь необходимо смочь выполнить его как:

sudo service app start  

убедиться заменить app, YOURAPP с именами собственными

0
ответ дан 1 June 2016 в 02:05

Простое решение, чем выполнение как системная служба состоит в том, чтобы использовать supervisord. См. полные инструкции в http://supervisord.org/

Короткая версия

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
0
ответ дан 1 June 2016 в 02:05

Я использую человечность 16.04 с разновидностью Xubuntu. Следующие шаги, требуемые выполнять выполнимую банку в запуске.

  1. Создают сценарий оболочки, который может работать, выполнимая банка
  2. Делают тот исполняемый файл сценария оболочки.
  3. Переходят к установке-> Сессия и Запуск

enter image description here

enter image description here

0
ответ дан 1 June 2016 в 02:05

Выполните эти шаги.

  1. Переходят к/etc/init.d
  2. , Добавляют, файл (скажите, что пример), и помещают сценарий, который Вы хотите выполнить в этом.
  3. chmod +x/etc/init.d/example. (полномочия)
  4. Добавляют # chkconfig: 345 99 10 внутренней части Ваш сценарий
  5. Сохраняет, это 6 Запускается, сервис с — сервисный пример запускается.

Это должно работать системной службой / сервис запуска

0
ответ дан 10 November 2019 в 01:39

Другие вопросы по тегам:

Похожие вопросы: