Ubuntu моно сбой, перезагрузите


1

Мне было просто интересно, как (если это возможно) я могу создать bash-файл для запуска моно-приложения при запуске системы и открыть его в случае сбоя. Есть ли какой-то цикл while, который я мог бы создать или что-то в этом роде? Просто чтобы вы знали, что у меня нет графического интерфейса, это все командная строка ssh. Также это Ubuntu 10.10. Имейте в виду, что для этого вопроса я не знаю, с чего начать при запуске системы, и ничего не знаю о bash (кроме того, что он существует)

Благодарю.

Ответы:


1

Возможно, вы захотите использовать систему Upstart, которая используется в Ubuntu для управления системными службами, которые должны запускаться при запуске системы и поддерживаться в рабочем состоянии, пока система работает.

Вы можете посмотреть на файлы в /etc/init/ использовать в качестве модели. В частности, эти файлы относятся к числу тех, которые используют respawn инструкция, которая поддерживает работу демонов в случае сбоя: cron.conf, dbus.conf, hal.conf а также udev.conf,

Некоторые из этих файлов имеют соответствующие записи в /etc/init.d которые связаны с /lib/init/upstart-job, Другие имеют свой собственный скрипт оболочки. Они используются для управления запуском и остановкой демона и могут использоваться в качестве моделей для вашего собственного сценария.

Посмотри пожалуйста этот для получения дополнительной информации о Upstart.

Посмотри пожалуйста этот для получения дополнительной информации об управлении процессами (хотя он не включает в себя информацию Upstart, у него есть другие полезные советы)

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


Я знаю, что это немного не по теме, но есть ли способ записать вывод из программы? Как, скажем, программа в фоновом режиме вылетает и говорит что-то вроде «Ошибка. Сбой программы» в командной строке, есть ли способ перехватить это и записать в журнал?
Kelly Elton

@ Kelton52: program 2>/path/to/err.log запишет вывод ошибки программы в файл. program > /path/to/out.log запишет обычный вывод в файл. Чтобы объединить их: program > /path/to/out.log 2>/path/to/err.log или же program > /path/to/everything.log 2>&1
Dennis Williamson

Это здорово, спасибо большое! Такие мелочи заставляют меня любить Linux.
Kelly Elton

@ kelton52: Если вы нашли мой ответ полезным, отметьте его как принятый. Благодарю.
Dennis Williamson
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.