Создайте сервис в Linux с помощью сценария оболочки

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

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

Цель службы : мне нравится, что служба автоматически перезапускает приложение в случае его сбоя. Нужно знать, что автоматический перезапуск приложения может быть выполнен с помощью сервисов

. Пожалуйста, помогите мне, я новичок в Linux: (

1
задан 7 October 2011 в 09:29

1 ответ

У меня такое ощущение, что вы упоминаете только «службу», потому что в Windows можно настроить службу на автоматический перезапуск при сбое. Я даже думаю, что было бы нелегко заставить произвольное «игровое приложение» работать в качестве службы в Windows, потому что службы работают с ограниченными привилегиями.

Если вам нужен скрипт, который автоматически перезапускает приложение, если последнее завершает работу с ненулевым кодом ошибки (т. Е. Когда происходит сбой), проверьте ответ Anycorn на аналогичный вопрос по stackoverflow . Это очень просто и не требует никаких услуг.

Если вам нужны пошаговые инструкции, вот что я бы сделал:

создайте каталог с именем bin в вашей домашней папке:

mkdir ~/bin

создайте скрипт «startgame» в этом каталоге:

touch ~/bin/startgame

откройте его в текстовом редакторе:

gedit ~/bin/startgame

введите следующий текст:

#!/bin/bash
while [ 1 ]; do /path/to/game/executable && break; done

сохраните файл;

установить исполняемый бит на нем:

chmod +x ~/bin/startgame

выполнить скрипт, набрав в терминале

startgame

Все вышеперечисленное может быть достигнуто без терминала - т.е. создать папку с помощью Наутилус, создайте файл, сделайте его исполняемым; создать ярлык на рабочем столе и т. д.

Если вам интересно, как работает скрипт:

while [ 1 ]; do ... done

- это бесконечный цикл

/path/to/game/executable

запускает приложение и ожидает его завершения (очевидно, вам нужно измените его на фактический путь вашего приложения)

command1 && command2

выполняет команду 1, а затем выполняет команду 2 , только если команда 1 завершилась с нулевым кодом возврата (который указывает на успех). То есть цикл остановится (оператор 'break'), только если программа завершится без ошибки, в противном случае он будет перезапущен.

0
ответ дан 7 October 2011 в 09:29

Другие вопросы по тегам:

Похожие вопросы: