系统启动时运行可执行jar文件

我有一个java可执行jar文件,我试图在终端中运行。

我需要自动运行项目,以便每当我像系统服务一样启动PC时jar文件就会运行。

您可以通过将命令添加到/etc/rc.local的末尾来执行此操作,您必须使用sudo访问权来编辑此文件。

因此,此命令应该适用于您,将your_executable.jar替换为您的实际jar文件。

 sudo echo 'java -jar your_executable.jar' >> /etc/rc.local 

首先,你必须在你的ubuntu中安装java。

其次,jar文件不是要运行的可执行文件,但是您需要在启动时运行java,因此您必须创建脚本,使其可执行或将命令放在/etc/rc.local文件中:

java -jar 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 

一定要用适当的名称替换appYOURAPP

比作为系统服务运行更简单的解决方案是使用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 

我正在使用带有Xubuntu风味的ubuntu 16.04。 以下步骤在启动时运行runnable jar。

  1. 创建可以运行runnable jar的shell脚本
  2. 使该shell脚本可执行。
  3. 转到设置 – >会话和启动

在此处输入图像描述

在此处输入图像描述