У меня есть исполняемый jar-файл java, который я пытаюсь запустить в терминале.
Мне нужно автоматически запустить проект, чтобы файл jar запускался всякий раз, когда я запускаю ПК, как системная служба.
Можно сделать это путем добавления команды в конец /etc/rc.local
, необходимо будет использовать sudo доступ для редактирования этого файла.
, Таким образом, эта команда должна работать на Вас, заменить your_executable.jar
Вашим фактическим файлом банки.
sudo echo 'java -jar your_executable.jar' >> /etc/rc.local
Сначала необходимо было установить Java в человечности.
111-секундный файл банки не является исполняемым файлом для выполнения, но Вам нужен Java для выполнения при запуске, таким образом, необходимо сделать сценарий, сделайте его исполняемым файлом или поместите команды в/etc/rc.local файл:
Java - банка file.jar &
выход 0
УДАЧИ
Попробуйте это:
#!/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
с именами собственными
Простое решение, чем выполнение как системная служба состоит в том, чтобы использовать 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
Я использую человечность 16.04 с разновидностью Xubuntu. Следующие шаги, требуемые выполнять выполнимую банку в запуске.
Выполните эти шаги.
Это должно работать системной службой / сервис запуска