Автор Тема: Запуск приложения systemd  (Прочитано 3926 раз)

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

Оффлайн makarenko

  • Новичок форума
  • Сообщений: 6
Запуск приложения systemd
« : 15 Января 2016, 09:58:44 »
Добрый день.
Есть raspberry pi с установленной системой Raspbian.
Так же имеется скрипт  который ожидает ввод символов с клавиатуры и проверят их в базе.
Необходимо чтобы скрипт запускалось после старта устройства и после входа в систему.
Как я вижу решение задачи.
1. необходимо осуществить автоматический вход в систему. (РЕШЕНО)
2. необходимо запустить скрипт.

У меня вопрос по второму пункту. До обновления системы (конкретно systemd) я запуск скрипта делал через rc.local.
Как осуществить запуск скрипта после полной загрузки системы?

Заранее спасибо.
 

Оффлайн lumberjack

Re: Запуск приложения systemd
« Ответ #1 : 15 Января 2016, 10:13:47 »
« Последнее редактирование: 15 Января 2016, 10:57:34 от lumberjack »
 

Yrii

  • Гость
Re: Запуск приложения systemd
« Ответ #2 : 15 Января 2016, 10:16:17 »
так и с systemd можно использовать всё так же rc.local (у меня на одном компе так и сделано - все нормально отрабатывает)
 

Оффлайн makarenko

  • Новичок форума
  • Сообщений: 6
Re: Запуск приложения systemd
« Ответ #3 : 15 Января 2016, 10:45:16 »
Спасибо за мануал прочитаю еще раз.
Вот с rc.local не все так просто. как я понимаю rc.local реализован как сервис и он запускается до запуска последнего сервиса (т.е. не последним) и как следствие в мой скрипт начинает работать до того как загрузились все сервисы.
 

Оффлайн ferum

Re: Запуск приложения systemd
« Ответ #4 : 15 Января 2016, 12:01:11 »
Хотя запуск через rc.local это костыльное решение, отсрочить  запуск вашего сервиса не составляет труда, достаточно перед командой на исполнение вписать строку sleep  с указанием времени отсрочки в секундах.
Русские дебианщики против цифрового слабоумия !
 

Оффлайн makarenko

  • Новичок форума
  • Сообщений: 6
Re: Запуск приложения systemd
« Ответ #5 : 15 Января 2016, 13:12:54 »
ferum, Спасибо за ответ. Sleep не устанавливает загрузка сервиса он просто его приостанавливает и стопорит оставшиеся сервисы. Пробовал просто перезапустить сервис rc-local он отрабатывает не корректно. такое ощущение, что нельзя запустить скрипт через сервис и ожидать ввода символов, а то основная задача.  :(
 

Оффлайн lumberjack

Re: Запуск приложения systemd
« Ответ #6 : 15 Января 2016, 13:27:13 »
а почему именно rc-local? почему нельзя сервисом отдельным прогу запихать-то? а там уже и ожидание выставить, раз уж надо
 

Оффлайн makarenko

  • Новичок форума
  • Сообщений: 6
Re: Запуск приложения systemd
« Ответ #7 : 15 Января 2016, 14:31:23 »
lumberjack, а какие еще варианты?
 

Оффлайн vic5710

Re: Запуск приложения systemd
« Ответ #8 : 15 Января 2016, 18:15:58 »
можно в .bash_profile запуск сделать. будет выполняться после логина
 

Оффлайн ferum

Re: Запуск приложения systemd
« Ответ #9 : 15 Января 2016, 18:24:54 »
В общем наверное надо писать юнит для запуска вашего скрипта, а для этого надо как минимум знать его название, расположение и время старта ( после чего он должен стартовать)а так же к каой группе приложений или сервисов он относится.
Русские дебианщики против цифрового слабоумия !
 

Оффлайн lumberjack

Re: Запуск приложения systemd
« Ответ #10 : 17 Января 2016, 10:40:29 »
makarenko, да с любого сервиса берешь как банальный пример.
к примеру, у меня от юзера запускается сервис mpd
[Unit]
Description=Music Player Daemon
After=network.target sound.target

[Service]
ExecStart=/usr/bin/mpd --no-daemon

# allow MPD to use real-time priority 50
LimitRTPRIO=50
LimitRTTIME=infinity

[Install]
WantedBy=default.target
как видишь, ничего сложного.
подобным образом хоть виртуалку запускаешь, хоть ssh или несколько яндекс.дисков... да что угодно...
« Последнее редактирование: 17 Января 2016, 10:43:33 от lumberjack »
 

Оффлайн makarenko

  • Новичок форума
  • Сообщений: 6
Re: Запуск приложения systemd
« Ответ #11 : 17 Января 2016, 13:36:39 »
lumberjack, Спасибо за ответ. Завтра попробую создать отдельный сервис.

Cообщение объединено 18 Января 2016, 13:29:10
Всем добрый день.
В общем попробовал создать. Делал так
1. создал для примера файл bash.service
[Unit]
Description=test
After=network.target

[Service]

ExecStart=/bin/bash '/usr/python/eticket/start.sh'
# allow MPD to use real-time priority 50
LimitRTPRIO=50
LimitRTTIME=infinity

[Install]
WantedBy=default.target
2. обновил список systemctl daemon-reload
3. запустил systemctl start bash.service
4. проверил статус systemctl status bash.service
● bash.service - MyBashScript
   Loaded: loaded (/etc/systemd/system/bash.service; enabled)
   Active: inactive (dead) since Пн 2016-01-18 10:16:00 UTC; 2s ago
  Process: 1214 ExecStart=/bin/bash /usr/python/eticket/start.sh (code=exited, status=0/SUCCESS)
 Main PID: 1214 (code=exited, status=0/SUCCESS)

янв 18 10:15:59 raspberrypi systemd[1]: Started MyBashScript.


start.sh выглядит так
#!/bin/bash
read B
echo $B



как я понимаю теперь при запуски системы у меня должен запустить данный сервис и ожидать ввода символов с клавиатуры.
Но у меня этого не происходит.
Как я понял у меня процесс запустился в фоне.

« Последнее редактирование: 18 Января 2016, 13:29:10 от makarenko »
 

Оффлайн makarenko

  • Новичок форума
  • Сообщений: 6
Re: Запуск приложения systemd
« Ответ #12 : 18 Января 2016, 16:25:44 »
В общем решил задачу самым простым способом :( и самым кривым
В файле /etc/profile прописал запуск процесса. И как следствие автологин не нужен.
Всем спасибо кто откликнулся :)

Тему можно закрывать.
 

Теги:
 

запуск службы до авторизации пользователя

Автор os_a

Ответов: 5
Просмотров: 2433
Последний ответ 12 Декабря 2014, 13:21:55
от vic5710
Запуск сайта на сервере

Автор sky

Ответов: 3
Просмотров: 2291
Последний ответ 29 Ноября 2013, 19:15:38
от sandaksatru
запуск uwsgi при старте

Автор serrrgggeee

Ответов: 0
Просмотров: 1521
Последний ответ 24 Сентября 2015, 12:05:53
от serrrgggeee
Не срабатывает запуск mgetty из /etc/inittab

Автор prophetic

Ответов: 0
Просмотров: 1499
Последний ответ 14 Апреля 2014, 11:32:06
от prophetic
Запуск скриптов на указанных доп. IP

Автор zuart

Ответов: 3
Просмотров: 1846
Последний ответ 23 Марта 2017, 03:03:05
от vic5710