在系统启动时在Ubuntu上运行Jar文件

时间:2013-07-23 00:04:55

标签: java linux ubuntu upstart sysv

我正在尝试在Ubuntu机器上启动时运行.jar文件,但我没有得到任何地方。 我已经尝试过这里的说明https://askubuntu.com/questions/99232/how-to-make-a-jar-file-run-on-startup-and-when-you-log-out了,我尝试过使用Upstart网站上的信息&食谱,但他们没有工作。我已经尝试了旧的SysV和新的Upstart方法,但它们都没有在系统启动时启动.jar。

这是运行.jar

的shell脚本
#!/bin/bash

cd /home/dev/TransformationService/

java -jar TransformationServer.jar

SysV启动方法的文件

#!/bin/bash
# Transformation Server
# 
# Description: Transforms incoming messages on a given port and forwards them

case $1 in
    start)
        /bin/bash /usr/local/bin/ServerStart.sh
    ;;
    stop)
        /bin/bash /usr/local/bin/ServerStop.sh
    ;;
    restart)
        /bin/bash /usr/local/bin/ServerStop.sh
        /bin/bash /usr/local/bin/ServerStart.sh
    ;;
esac
exit 0

UpStart方法

# transformationserver - transforms incoming http messages, and redirects them
#
# This service intercepts incoming http messages on a given port, and
# transforms them into an acceptable format in order to be received
# by a 3rd party service

start on runlevel [345]
stop on runlevel [!2345]

respawn

script
    exec /bin/bash /home/ubuntu/TransformationServer/ServerStart.sh
    # Also trying the below as well
    #exec /bin/java -jar /home/ubuntu/TransformationServer/TransformationServer.jar
end-script

有更多使用这些方法的经验的人可以查看我的文件,并可能指出我正确的方向吗?这项服务是必需的,因此我们的公司系统可以成功接收来自我们客户的通信。

提前致谢。

1 个答案:

答案 0 :(得分:1)

你如何使用crontab?

作为您希望jar运行的用户,运行以下命令:

crontab -e

添加以下行:

@reboot /path/to/your/ServerStart.sh

保存。这将使服务器在重新启动后重新启动时,它将运行您的shell脚本。

这是您的crontab,您可以通过 man crontab,或维基百科页面了解所有相关内容:https://en.wikipedia.org/wiki/Cron