Как заставить jar-файл запускаться при запуске и выходе из системы?

Вот простой способ сделать это с помощью SysVInit. Инструкции:

  1. Создайте сценарий запуска и остановки вашего приложения. Поместите его в какой-нибудь каталог, в нашем примере это:

    • Запуск скрипта: /usr/local/bin/myapp-start.sh
    • Остановить сценарий: /usr/local/bin/myapp-stop.sh

    Каждый из них будет содержать инструкции по запуску / остановке приложения. Например, в myapp-start.sh содержание может быть таким же простым, как следующее:

    #!/bin/bashjava -jar myapp.jar 

    Для сценария остановки это может быть что-то вроде этого:

    #!/bin/bash# Grabs and kill a process from the pidlist that has the word myapppid=`ps aux | grep myapp | awk '{print $2}'`kill -9 $pid
  2. Создайте следующий сценарий (myscript) и наденьте его на /etc/init.d.

    /etc/init.d/myscript содержание:

    #!/bin/bash# MyApp## description: bla blacase $1 in    start)        /bin/bash /usr/local/bin/myapp-start.sh    ;;    stop)        /bin/bash /usr/local/bin/myapp-stop.sh    ;;    restart)        /bin/bash /usr/local/bin/myapp-stop.sh        /bin/bash /usr/local/bin/myapp-start.sh    ;;esacexit 0
  3. Поместите скрипт для запуска в системе (используя SysV). Просто выполните следующую команду (как корень):

    update-rc.d myscript defaults 

PS: Я знаю, что Upstart - это здорово и бла-бла-бла, но я предпочитаю старую систему инициализации SysV.