2015-11-16 4 views
1

[Ubuntu 14.04] У меня есть консольное приложение Java, и мне нужно запускать все время (первая проблема), а также я могу повторно обращаться к консоли всякий раз, когда захочу (2-й проблема).Java-консоль, запущенная на экране autostart на Ubuntu

Чтобы решить вторую проблему, я использую экран, а затем запустите файл jar. Чтобы я мог снова подключить экран для доступа к моему консольному приложению.

Я сейчас застрял в первом номере. Я хочу сделать автозапуск экрана с ОС. Потому что мне нужно приложение, работающее все время. Кто-нибудь дает мне представление? Я ценю вашу помощь. Благодарю.


UPDATE 11/17/2015: С @ Янош помощи, он работает отлично, за исключением использования @reboot. Я пробовал crontab, начиная скрипт каждые 5 минут, и он работал нормально. Но когда я заменил его на @reboot, он больше не работал!

Наконец, я выбрал это решение: создайте экран с определенным именем, затем создайте файл сценария sh, чтобы проверить, существует ли экран с этим именем или нет. Если нет, запустите экран вместе с java-файлом. Наконец, создайте crontab для запуска скрипта каждые 1 час.

Большое спасибо @janos за ваши усилия и помощь.

ответ

1

Чтобы запустить программу после загрузки системы, используйте @reboot в вашем кронтабе:

@reboot /path/to/executable args 

Для получения более подробной информации, обратитесь к этой странице справки Ubuntu:

https://help.ubuntu.com/community/CronHowto


В соответствии с вашим комментирует, вы, кажется, испытываете трудности с запуском Java + экрана с cron.Чтобы помочь вам отладки, я предлагаю создать пользовательский файл конфигурации для screen, давайте назовем его ~/screen-debug, с содержанием, как это:

screen -t home 
screen -t java bash -c 'java -jar ...; echo Press enter to exit; read' 

и использовать кронтаб строку, как это для тестирования:

*/5 * * * * screen -c ~/screen-debug -d -m -R java 

Что происходит здесь:

  • Выполнить задание каждые 5 минут
  • использовать определенный экран C onfiguration
  • Начало экрана в режиме отдельных
  • Повторное использование экрана сессии под названием «Java»
    • Если сеанс с таким именем не существует, он будет создавать его
    • Если сеанс с этим именем Безразлично «т существует, то он будет использовать его (не запустить другой экран)
  • Там будет два окна в сессии экрана:
    1. Маркированный «домашний»: простая оболочка, как если бы вы запускали screen в своем домашнем каталоге
    2. Ярлык «java»: программа на Java, надеюсь, с радостью работает. Если вы не счастливы, вы должны увидеть сообщение об ошибке, которое должно помочь вам отладить проблему, и приглашение «Нажмите enter для выхода». Когда вы нажмете enter, оболочка закончится в этом окне.

После того, как вы получите эту работу, то вы можете заменить */5 * * * * с @reboot.

+0

Я запускаю 'crontab -e', затем редактирую файл с помощью этого кода: ' @reboot screen java -jar /mypath.jar myargs', после чего я перезагружаю систему и ничего не вижу. –

+0

Есть ли у вас опыт работы с командами cron? Известно, что это печально известно. Вместо '@ reboot', если вы используете' */5 * * * * '(запускать команду каждые 5 минут) или аналогично, это работает? – janos

+0

Я тестировал '* * * * *« echo cron работал >> /mypath/test.txt », и он работал нормально! –