Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Автозапуск консольной программки.  (Прочитано 2392 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн DsKTY

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Всем привет. Есть пару вопросов, явно не сложных, но мне как человеку без опыта их решить не получается.

В общем, есть консольная программка на java, которая посматривает за БД, делает некоторые действия, и слушает определённый порт (для удалённого управления). Нужно поставить эту программку в автозапуск, но что-то не так. Вот основные вопросы:

1. Где вообще принято размещать подобный софт? /bin, /sbin, /usr/bin, или ещё где?

2. При простом запуске программа забирает для себя консоль для вывода и после её запуска в этом терминале уже ничего нового не ввести. Можно ли как-то запускать программку в фоновом режиме, что бы терминал оставался свободным?

3. Собственно нужно поставить эту программку в автозапуск, после старта системы. Делал по вот такому мануалу: http://benrobb.com/2007/01/15/howto-start-subversion-at-boot-on-ubuntu/

Папку с файлами программы скопировал в /bin. В файле скрипта пишу:
java -jar /bin/sns/sns.jar

всё получается, но после перезагрузки Ubuntu не стартует, а просто останавливается на этапе логотипа с бегущй строкой загрузки. Подозреваю, что при запуске программы, возникают какие-то ошибки и блокируют загрузку (или может по тому, что программка забирает под себя терминал? О_о), но как их отловить тоже не знаю (ещё подозреваю, что программка может падать, если Ubuntu пытается её запустить до того как запустит MySQL-сервер, который должен крутится на этой же машине). Может где-то есть логи загрузки или ещё как можно просмотреть весь процесс?

В общем, буду благодарен за любые ответы, советы и пинки в нужную сторону.

Оффлайн ende_neu

  • Старожил
  • *
  • Сообщений: 2473
    • Просмотр профиля
Re: Автозапуск консольной программки.
« Ответ #1 : 03 Июня 2010, 22:35:49 »
В /usr/local/bin лучше или /opt , чтоб консоль не занимала попробуйте & добавить.Автозапуск -/etc/rc.local, а по указанному мануалу системные сервисы, туда лазать не нужно.

Оффлайн DsKTY

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: Автозапуск консольной программки.
« Ответ #2 : 04 Июня 2010, 01:01:47 »
Супер. Спасибо.

Ещё один вопросик тут выплыл. С помощью & освобождаю консоль после запуска прожки:
Цитировать
cd /opt/sns
sudo java -jar sns.jar &

Вот только прожка всё равно пишет в консоль свои сообщение во время работы, тем самым забивая эту консоль. Можно ли как-то указать ей что бы она свой стандартный вывод сделала "вникуда"? Пробовал вот так:
Цитировать
cd /opt/sns
sudo java -jar sns.jar > NUL &

В ответ получаю:
cannot create NUL: Permission denied

Как бы это правильнее сделать?
« Последнее редактирование: 04 Июня 2010, 01:03:53 от DsKTY »

tartan

  • Гость
Re: Автозапуск консольной программки.
« Ответ #3 : 04 Июня 2010, 01:13:13 »
прога > /dev/null 2>&1 &
Объяснение: http://www.xaprb.com/blog/2006/06/06/what-does-devnull-21-mean/

Оффлайн DsKTY

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: Автозапуск консольной программки.
« Ответ #4 : 04 Июня 2010, 01:18:40 »
Супер. Работает.

Спасибо. :)

tartan

  • Гость
Re: Автозапуск консольной программки.
« Ответ #5 : 04 Июня 2010, 01:21:34 »
Объяснение главное поняли?

Можно по отдельности стандартный вывод или сообщения об ошибках убирать, >/dev/null и 2>/dev/null соответственно.

Оффлайн DsKTY

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: Автозапуск консольной программки.
« Ответ #6 : 04 Июня 2010, 15:31:27 »
Объяснение главное поняли?

Можно по отдельности стандартный вывод или сообщения об ошибках убирать, >/dev/null и 2>/dev/null соответственно.
Угу. Всё понял: вывод перенаправляется вникуда, а ошибки на консоль.

 

Страница сгенерирована за 0.238 секунд. Запросов: 23.