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


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: systemctl для запуска скриптов  (Прочитано 199580 раз)

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

Оффлайн A7chin1975

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
systemctl для запуска скриптов
« : 22 Ноября 2023, 06:30:32 »
Всем доброго времени суток!
есть мысль запустить службу, которая будет запускать скрипты по определенным правилам.
хочется что бы сама служба не ждала выполнение скрипта.
то что работает на bash
Цитировать
test 1 > /dev/null 2>&1 &
не запускается

Оффлайн БТР

  • Заслуженный пользователь
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 6166
    • Просмотр профиля
Re: systemctl для запуска скриптов
« Ответ #1 : 22 Ноября 2023, 12:53:11 »
A7chin1975, чем не устраивает cron?

не запускается
Какой результат запуска вы ожидаете?

Оффлайн A7chin1975

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Re: systemctl для запуска скриптов
« Ответ #2 : 22 Ноября 2023, 13:20:06 »
есть скрипт службы
sysserver.run
в нем запускаю
test 1 > /dev/null 2>&1 &

скрипт
test создает файл

при запуске
sudo systemctl start sysserver.service
файл не создается

при запуске
./sysserver.run

скрипт test создает необходимый файл

« Последнее редактирование: 22 Ноября 2023, 13:27:29 от A7chin1975 »

Оффлайн БТР

  • Заслуженный пользователь
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 6166
    • Просмотр профиля
Re: systemctl для запуска скриптов
« Ответ #3 : 22 Ноября 2023, 14:11:51 »
скрипт test создает необходимый файл
test - это утилита (встроенная команда), которая проверяет истинность выражения. Нельзя запускать пользовательские скрипты с таким же именем без указания полного пути к исполняемому файлу.

Оффлайн A7chin1975

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Re: systemctl для запуска скриптов
« Ответ #4 : 22 Ноября 2023, 14:42:54 »
скрипт test создает необходимый файл
test - это утилита (встроенная команда), которая проверяет истинность выражения. Нельзя запускать пользовательские скрипты с таким же именем без указания полного пути к исполняемому файлу.

test переименовал в test1

путь до него полный(без пути действительно не находил СПАСИБО!)

но все равно не работает

убираю > /dev/null 2>&1 &

все создается

Оффлайн БТР

  • Заслуженный пользователь
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 6166
    • Просмотр профиля
Re: systemctl для запуска скриптов
« Ответ #5 : 22 Ноября 2023, 15:25:45 »
убираю > /dev/null 2>&1 & все создается
Вы перенаправляете вывод в /dev/null (нулевое устройство), что должно создаться?

Ознакомьтесь с базовыми понятиями работы с системой, ABS и т.п. Сильно поможет в решении ваших "проблем".

Оффлайн A7chin1975

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Re: systemctl для запуска скриптов
« Ответ #6 : 22 Ноября 2023, 17:53:45 »
спасибо Вам!
но в статье я со своим "опытом" ни чего не понял

мне надо запускать несколько файлов одновременно
запустил так
Цитировать
/rusbilling/service/test1 1 | /rusbilling/service/test2 2 | /rusbilling/service/test3 3 | /rusbilling/service/test1 4

/rusbilling/service/test1 1 | /rusbilling/service/test2 2 | /rusbilling/service/test3 3 | /rusbilling/service/test1 4

уже вариант для меня.
а запустить в фоне так и не получается(

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6754
  • 20% Cooler
    • Просмотр профиля
Re: systemctl для запуска скриптов
« Ответ #7 : 22 Ноября 2023, 18:05:30 »
спасибо Вам!
но в статье я со своим "опытом" ни чего не понял
Значит, наймите профессионала.

запустил так
А теперь прочитайте, что вы запустили :idiot2:
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн A7chin1975

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Re: systemctl для запуска скриптов
« Ответ #8 : 22 Ноября 2023, 18:17:47 »
за совет по найму, тоже спасибо!
очень полезный, даже в голову не пришел.


мне нужна параллельная работа нескольких скриптов, и желательно без задержки службы.
нужно будет выполнять около 50 скриптов по 10-20 секунд
вот и думаю как его разбить на несколько потоков

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6754
  • 20% Cooler
    • Просмотр профиля
Re: systemctl для запуска скриптов
« Ответ #9 : 22 Ноября 2023, 18:20:37 »
параллельная работа нескольких скриптов
&

желательно без задержки службы.
Что это значит?
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн A7chin1975

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Re: systemctl для запуска скриптов
« Ответ #10 : 22 Ноября 2023, 18:38:23 »
если речь о & в конце строки, то при запуске сервиса они работают друг за другом
а при запуске из bash  терминала нет.

желательно без задержки службы.
Что это значит?
в фоне, может выразился не правильно

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6754
  • 20% Cooler
    • Просмотр профиля
Re: systemctl для запуска скриптов
« Ответ #11 : 22 Ноября 2023, 18:39:40 »
то при запуске сервиса они работают друг за другом
Ну показывайте, что вы там сотворили?
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн A7chin1975

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Re: systemctl для запуска скриптов
« Ответ #12 : 22 Ноября 2023, 20:08:31 »
то при запуске сервиса они работают друг за другом
Ну показывайте, что вы там сотворили?

есть скрипт
test1
, который выполняет опрос и выводит его в файл
в скрипте службы server-test.run
Цитировать
#!/bin/bash
/usr/bin/test1 1 &
/usr/bin/test1 5 &
/usr/bin/test1 8 &
/usr/bin/test1 7 &

Сам сервис
Цитировать
[Unit]
Description=ServerTest
 
[Service]
Type=simple
ExecStart=/usr/bin/server-test.run
#Restart=always
 
 
[Install]
WantedBy=multi-user.target

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6754
  • 20% Cooler
    • Просмотр профиля
Re: systemctl для запуска скриптов
« Ответ #13 : 22 Ноября 2023, 20:46:21 »
Type=simple
Type=forking

И логи показывайте
systemctl status КАК-НАЗВАЛИ.service
journalctl -u КАК-НАЗВАЛИ.service
« Последнее редактирование: 22 Ноября 2023, 20:54:04 от ALiEN175 »
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн A7chin1975

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Re: systemctl для запуска скриптов
« Ответ #14 : 22 Ноября 2023, 21:54:51 »
Type=simple
Type=forking

И логи показывайте
systemctl status КАК-НАЗВАЛИ.service
journalctl -u КАК-НАЗВАЛИ.service

systemctl status КАК-НАЗВАЛИ.service
Цитировать
ноя 22 23:51:01 КАК-НАЗВАЛИ systemd[1]: Started КАК-НАЗВАЛИ server.
ноя 22 23:51:02 КАК-НАЗВАЛИ systemd[1]: КАК-НАЗВАЛИ.service: Deactivated successfully.

journalctl -u КАК-НАЗВАЛИ.service
Цитировать
ноя 22 23:51:01 КАК-НАЗВАЛИ systemd[1]: Started КАК-НАЗВАЛИ server.
ноя 22 23:51:02 КАК-НАЗВАЛИ systemd[1]: КАК-НАЗВАЛИg.service: Deactivated successfully.
это с
/test1 1 &
/test1 2 &
/test1 3 &

Type=forking
заменил


 

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