сценарий оболочки Ubuntu перезапустить JAR - PullRequest
2 голосов
/ 28 декабря 2010

Мне нужно написать скрипт оболочки, который закрывает работающий .jar и снова открывает его в терминале. Я никогда не писал сценарий оболочки и не знаю, с чего начать.

Вот команда, которую я использую для запуска приложения в терминале.

java -jar '/home/fdqadmin/NetBeansProjects/dbConvert2/dist/dbConvert2.jar' --Terminal=true

Я использую Ubuntu 10.04 LTS.

Ответы [ 2 ]

1 голос
/ 28 декабря 2010

Что вы, "закрыв работающий .jar"?Вы работаете в системе Un * x и, следовательно, «kill -9» гарантированно уничтожит процесс AND высвободит все ресурсы, которые использует процесс (или ваша система Un * x не совместима,но я никогда не видел).

Так что, как только вы отправите kill -9, Java-программа, все ее потоки, все, будет выполнено .Нет отключения крюка, нет ничего.Это как если бы вы дернули шнур питания.

Будет ли "kill -9" приемлемым для вас способом уничтожить работающую Java-программу?Будет ли программа Java перезагружаться аккуратно после того, как она будет "kill -9'ed"?(Это должно перезапуститься, но это не всегда так).

Если реальное уничтожение подходит и если вы знаете, что .jar всегда запускается с использованием этой командной строки, и если вы знаете,должен быть только один такой .jar, запущенный пользователем, вы могли бы что-то вроде этого:

#!/bin/bash

kill -9 $(ps aux | grep java | grep dbConvert2 | awk '{print $2}')
java -jar '/home/fdqadmin/NetBeansProjects/dbConvert2/dist/dbConvert2.jar' --Terminal=true

Вы также можете войти в java-idiosynchratic land и использовать «умную» команду, например «jps», но яЯ предпочел бы остаться с мощными инструментами Un * x, большое спасибо:)

0 голосов
/ 29 декабря 2010

Я прокомментировал здесь ранее, но вот интересный документ от developerworks по обработке сигналов Java, который может быть интересен, если вы хотите продолжить этот метод.

Iтем не менее, все еще верьте, что, как и в любом случае завершения процесса, чуждого вашему текущему модулю кода, даже если вы написали его, стоит попросить его остановить через один из многих механизмов межпроцессного взаимодействия.

...