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


Автор Тема: не стартует служба (самописный скрипт)  (Прочитано 3013 раз)

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

Оффлайн pl84

  • Автор темы
  • Любитель
  • *
  • Сообщений: 68
    • Просмотр профиля
есть Ubuntu сервер 16.04 (она виртуализирована - но это не особо важно),
на нее установлен сервак CS 1.6 (игра-стрелялка),
хочется, чтобы игра сама стартовала без моего участия при загрузке ОС и подключений каких-либо к самому серверу, если к примеру сервак перезагрузили или еще что-то случилось,

что я сделал:
1. создал файл cs16 в папке /etc/init.d (содержимое файла ниже)
2. сделал его исполняемым chmod +x ./somestuff3. прописал его в каталоги update-rc.d somestuff defaults4. пытаюсь его запустить: sudo service cs16 start - ничего не происходит, в top его не видно (процесс hlds_run), так же в статусе служб моя служба cs16 со знаком "?", смотрю конкретно мою службу sudo service cs16 statusполучаю:
user@SRV-GAME:~$ sudo service cs16 status
● cs16.service - LSB: Run CS SOGO Server 1.6
   Loaded: loaded (/etc/init.d/cs16; bad; vendor preset: enabled)
   Active: [color=green]active (exited)[/color] since Пт 2016-07-15 14:41:48 MSK; 34min ago
     Docs: man:systemd-sysv-generator(8)

июл 15 14:41:48 SRV-GAME cs16[916]: /etc/init.d/cs16: 26: /etc/init.d/cs16: -pidfile: not found
июл 15 14:41:48 SRV-GAME cs16[916]: /etc/init.d/cs16: 24: cd: can't cd to hlds/server
июл 15 14:41:48 SRV-GAME cs16[916]: /etc/init.d/cs16: 25: /etc/init.d/cs16: ./hlds_run: not found
июл 15 14:41:48 SRV-GAME cs16[916]: /etc/init.d/cs16: 26: /etc/init.d/cs16: -pidfile: not found
июл 15 14:41:48 SRV-GAME cs16[916]: CS Server 1.6 Starting
июл 15 14:41:48 SRV-GAME systemd[1]: Started LSB: Run CS SOGO Server 1.6.
июл 15 14:47:30 SRV-GAME systemd[1]: Started LSB: Run CS SOGO Server 1.6.
июл 15 14:59:18 SRV-GAME systemd[1]: Started LSB: Run CS SOGO Server 1.6.
июл 15 15:00:00 SRV-GAME systemd[1]: Started LSB: Run CS SOGO Server 1.6.
июл 15 15:13:59 SRV-GAME systemd[1]: Started LSB: Run CS SOGO Server 1.6.
5. если же запустить скрипт сам: sudo /etc/init.d/cs16 start - то сервер игры стартует и все хорошо работает,
(Нажмите, чтобы показать/скрыть)

Пользователь добавил сообщение 15 Июль 2016, 15:24:28:
и еще никак не могу побороть статус службы и pid файлы, пишет что файлов pid нет, если раскоментировать их создание и проверки

Пользователь добавил сообщение 15 Июль 2016, 15:28:49:

Правила форума
Цитата: Правила форума
1.4. Листинги и содержимое текстовых файлов следует добавлять в сообщение с помощью тега [spoiler]...[/spoiler], либо прикреплять к сообщению в виде отдельного файла.
--peregrine
« Последнее редактирование: 15 Июль 2016, 21:36:21 от peregrine »

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3276
  • Ubuntu Mate 16.04 х64
    • Просмотр профиля
Re: не стартует служба (самописный скрипт)
« Ответ #1 : 15 Июль 2016, 16:57:41 »
pl84, мде...

1) В 16.04 используется systemd !
2) path - надо писать полный путь. У вас что, CS сервер лежит в /etc/init.d/hlds/server ?
Fujitsu UH552: Intel Core i3-3217U, 16GB DDR3 1600MHz, Intel HD4000, Intel 535 120GB/Ubuntu 16.04 Mate
HP 625: AMD Athlon P320, 4GB DDR3 1333MHz, AMD HD4250, Seagate Momentus/Ubuntu 14.04 Mate

Оффлайн Sergiy17

  • Любитель
  • *
  • Сообщений: 88
    • Просмотр профиля
Re: не стартует служба (самописный скрипт)
« Ответ #2 : 15 Июль 2016, 21:20:27 »
Напишите лучше юнит для Systemd, тогда и отлаживать станет проще. https://habrahabr.ru/post/275645/
Лучший способ в чём-то разобраться до конца — это попробовать научить этому компьютер." (с) Дональд Кнут

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3276
  • Ubuntu Mate 16.04 х64
    • Просмотр профиля
Re: не стартует служба (самописный скрипт)
« Ответ #3 : 15 Июль 2016, 21:37:15 »
(Нажмите, чтобы показать/скрыть)
Fujitsu UH552: Intel Core i3-3217U, 16GB DDR3 1600MHz, Intel HD4000, Intel 535 120GB/Ubuntu 16.04 Mate
HP 625: AMD Athlon P320, 4GB DDR3 1333MHz, AMD HD4250, Seagate Momentus/Ubuntu 14.04 Mate

Оффлайн pl84

  • Автор темы
  • Любитель
  • *
  • Сообщений: 68
    • Просмотр профиля
Re: не стартует служба (самописный скрипт)
« Ответ #4 : 22 Июль 2016, 10:43:54 »
pl84, мде...

1) В 16.04 используется systemd !
2) path - надо писать полный путь. У вас что, CS сервер лежит в /etc/init.d/hlds/server ?

1. вроде эмуляция поддерживается и без системд должно срабатывать, сервис же по ранлевелам прописывается нормально, но не стартует почему-то(((,
2. путь записан правильно, при ручном запуске этого скрипта, программа стартует и работает без проблем.
« Последнее редактирование: 22 Июль 2016, 10:50:52 от pl84 »

Оффлайн jel

  • Активист
  • *
  • Сообщений: 828
    • Просмотр профиля
Re: не стартует служба (самописный скрипт)
« Ответ #5 : 22 Июль 2016, 11:35:00 »
2. путь записан правильно, при ручном запуске этого скрипта, программа стартует и работает без проблем.

Путь относительный а не абсолютный. Соответственно при ручном запуске он может быть верным, а при запуске автоматом - нет.

Оффлайн pl84

  • Автор темы
  • Любитель
  • *
  • Сообщений: 68
    • Просмотр профиля
Re: не стартует служба (самописный скрипт)
« Ответ #6 : 22 Июль 2016, 13:13:49 »
2. путь записан правильно, при ручном запуске этого скрипта, программа стартует и работает без проблем.

Путь относительный а не абсолютный. Соответственно при ручном запуске он может быть верным, а при запуске автоматом - нет.
дело в том, что я пробовал писать полный путь /home/user/hlds/server - ничего не менялось, сначала тоже подумал про относительный и абсолютный путь

Оффлайн Akmee

  • Новичок
  • *
  • Сообщений: 47
    • Просмотр профиля
Re: не стартует служба (самописный скрипт)
« Ответ #7 : 23 Декабрь 2016, 16:03:59 »
Ну, и как? - Удалось разрулить проблему?
- И у меня такая же ситуация на Убунте 15 с самописным скриптом: в ручную стартует, а при загрузке нет. - Чудеса какие-то.

ЗЫ. Более того, что ещё интересней - Апач2 тоже не стартует при загрузке системы, а вручную стартует, при этом скрипт в этом случае соответственно не самопальный.
« Последнее редактирование: 23 Декабрь 2016, 16:22:47 от Akmee »
У16.04ЛТСх64, Интел_Коре2Дуо_Е4600, Нвидия_ГТХ650, 4Гб ОЗУ / У16.04ЛТСх64, Интел_Пентиум P6100, Нвидия_Оптимус, 6Гб ОЗУ

Оффлайн Peter_I

  • Старожил
  • *
  • Сообщений: 2142
    • Просмотр профиля
Re: не стартует служба (самописный скрипт)
« Ответ #8 : 23 Декабрь 2016, 18:26:00 »
Дла начала укажите в ваших самопальных скриптах все команды с полным путём,например,
/usr/bin/touch
Пётр.

Оффлайн shost

  • Активист
  • *
  • Сообщений: 550
    • Просмотр профиля
Re: не стартует служба (самописный скрипт)
« Ответ #9 : 24 Декабрь 2016, 09:19:18 »
на примере thttpd
пишем скрипт типа этого (пути полные)
thttp-d.service:
[Unit]
Description=FidoTech http

[Service]
PIDFile=/run/thttpd.pid
ExecStart=/usr/sbin/thttpd -D -C /etc/thttpd/thttpd.conf -T 1251 -c "/cgi-bin/*"
Restart=always

[Install]
WantedBy=multi-user.target

Кладем этот файл (юнит) в каталог /etc/systemd/system/ (из под рута, разумеется)
Смотрим его статус
systemctl status thttp-d

что то такое:
myunit.service - thttp-d
   Loaded: loaded (/etc/systemd/system/myunit.service; disabled)
   Active: inactive (dead)

Видим, что он disabled — разрешаем его
systemctl enable thttp-d
Если нет никаких ошибок в юните — то вывод будет вот такой:
thttp-d.service
   Loaded: loaded (/etc/systemd/system/thttp-d.service; enabled)
   Active: inactive (dead)

Запускаем сервис
systemctl start thttp-d
Смотрим красивый статус:
systemctl -l status thttp-d

там должен быть active он, а не труп :) и появится в списке процессов (htop и иже)

после исправлений (ошибки-изменения) в юните перегружать демон systemd
systemctl daemon-reload

если пошло что то не так, то можно свой скрипт стопнуть
systemctl stop thttp-d
после поправок и релоада
systemctl start thttp-d для его старта



Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3276
  • Ubuntu Mate 16.04 х64
    • Просмотр профиля
Re: не стартует служба (самописный скрипт)
« Ответ #10 : 24 Декабрь 2016, 10:53:45 »
путь записан правильно, при ручном запуске этого скрипта, программа стартует и работает без проблем.
Да неужели?
Давайте разберемся.
[qoute]
path="hlds/server"
[/quote]
При старте "руками" берется текущее положение пользователя и делается переход в папку.
При старте системы стартовое положение будет другим
Ну и главный вопрос: у вас часом хоме не шифрован? Принято такие программы пихать в /opt
Fujitsu UH552: Intel Core i3-3217U, 16GB DDR3 1600MHz, Intel HD4000, Intel 535 120GB/Ubuntu 16.04 Mate
HP 625: AMD Athlon P320, 4GB DDR3 1333MHz, AMD HD4250, Seagate Momentus/Ubuntu 14.04 Mate

Оффлайн pl84

  • Автор темы
  • Любитель
  • *
  • Сообщений: 68
    • Просмотр профиля
Re: не стартует служба (самописный скрипт)
« Ответ #11 : 02 Февраль 2017, 10:15:48 »
да, я тогда разобрался... косяк был в полном пути, но почему-то у меня не с первого раза он запустился и после нескольких дней муки он неожиданно стартанул, до этого множество раз проверял пути и закомментировал все, что могло хоть как-то влиять на запуск в этом скрипте...

потом освоил запуск служб через systemd, все проще как мне показалось, доволен им.
https://forum.ubuntu.ru/index.php?topic=284722.msg2243476#msg2243476
« Последнее редактирование: 02 Февраль 2017, 10:25:32 от pl84 »

 

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