系统启动时运行可执行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
一定要用适当的名称替换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
我正在使用带有Xubuntu风味的ubuntu 16.04。 以下步骤在启动时运行runnable jar。
- 创建可以运行runnable jar的shell脚本
- 使该shell脚本可执行。
- 转到设置 – >会话和启动