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


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Как запустить один скрипт в другом  (Прочитано 629 раз)

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

Оффлайн peis20

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Как запустить один скрипт в другом
« : 23 Октября 2017, 15:05:16 »
Здравствуйте коллеги. Я весь мозг соломал. Есть Ubuntu 16 LTS, необходимо добавить в автозагрузку скрипт из папки /home/name/myfolder/start.sh

Сделал скрипт в /etc/init.d/test туда написал:
#!/bin/sh
### BEGIN INIT INFO
# Provides:          skeleton
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Example initscript
# Description:       This file should be used to construct scripts to be
#                    placed in /etc/init.d.
### END INIT INFO
sleep 20
/home/name/myfolder/start.sh &

Сделал скрипт запускаемым добавил в автозагрузке, при старте test запускается но дальше при попытке запустить в нем другой скрипт пишет file not found

Подскажите что делаю не так
П.С, : Если зайти в систему и просто запустить test то все отрабатывает на ура
« Последнее редактирование: 25 Октября 2017, 10:30:53 от Azure »

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6839
    • Просмотр профиля
Re: Как запустить один скрипт в другом
« Ответ #1 : 23 Октября 2017, 15:16:03 »
Цитировать
...при старте test запускается но дальше при попытке запустить в нем другой скрипт пишет file not found
В скрипте прописать полный путь до другого скрипта.

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2648
    • Просмотр профиля
Re: Как запустить один скрипт в другом
« Ответ #2 : 23 Октября 2017, 15:24:50 »
peis20,
Именно через инит нужно?

запустить в нем другой скрипт пишет file not found
ls -l /home/name/myfolder/start.shчто пишет?

Оффлайн peis20

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: Как запустить один скрипт в другом
« Ответ #3 : 23 Октября 2017, 15:45:39 »
Цитировать
...при старте test запускается но дальше при попытке запустить в нем другой скрипт пишет file not found
В скрипте прописать полный путь до другого скрипта.
А это не полный? /home/name/myfolder/start.sh

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6691
  • 20% Cooler
    • Просмотр профиля
Re: Как запустить один скрипт в другом
« Ответ #4 : 23 Октября 2017, 15:51:52 »
Ubuntu 16 LTS
там systemd, а не init

\etc\systemd\system\mytest.service
[Unit]
Description=Test

[Service]
Type=simple
ExecStart=/home/name/myfolder/start.sh

[Install]
WantedBy=multi-user.target

sudo systemctl enable mytestsudo systemctl start mytest
🖥 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

Оффлайн peis20

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: Как запустить один скрипт в другом
« Ответ #5 : 23 Октября 2017, 16:00:38 »
ls -l /home/name/myfolder/start.sh
-rwxrwxr-x 1 ivan ivan 152 окт 21 19:06 /home/name/myfolder/start.sh

Пользователь добавил сообщение 23 Октября 2017, 16:02:45:
Ubuntu 16 LTS
там systemd, а не init

\etc\systemd\system\mytest.service
[Unit]
Description=Test

[Service]
Type=simple
ExecStart=/home/name/myfolder/start.sh

[Install]
WantedBy=multi-user.target

sudo systemctl enable mytestsudo systemctl start mytest

Либо я дико туплю, но как помню systemd всегда был на Centos подобных системах
« Последнее редактирование: 23 Октября 2017, 16:02:45 от peis20 »

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6691
  • 20% Cooler
    • Просмотр профиля
Re: Как запустить один скрипт в другом
« Ответ #6 : 23 Октября 2017, 16:08:54 »
peis20, systemd по умолчанию с ubuntu 15.04
https://wiki.ubuntu.com/SystemdForUpstartUsers
🖥 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

Оффлайн peis20

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: Как запустить один скрипт в другом
« Ответ #7 : 23 Октября 2017, 16:09:47 »
Ставил утилиту rcconf , показывает что скрипт стоит в автозагрузке, и судя по логам он запускается, но, не может увидеть файл второго скрипта который надо запустить. Я бы не стал так гемороится двумя скриптами, но по другому добавить в автозагрузку нужный мне скрипт находящийся не в папке init.d не получается.

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6691
  • 20% Cooler
    • Просмотр профиля
Re: Как запустить один скрипт в другом
« Ответ #8 : 23 Октября 2017, 16:37:20 »
peis20, home зашифрован?
🖥 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

Оффлайн peis20

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: Как запустить один скрипт в другом
« Ответ #9 : 23 Октября 2017, 17:21:59 »
peis20, home зашифрован?
Да

Пользователь добавил сообщение 23 Октября 2017, 17:23:21:
Ubuntu 16 LTS
там systemd, а не init

\etc\systemd\system\mytest.service
[Unit]
Description=Test

[Service]
Type=simple
ExecStart=/home/name/myfolder/start.sh

[Install]
WantedBy=multi-user.target

sudo systemctl enable mytestsudo systemctl start mytest
Спасибо, увидел, сделал как написано. Скрипт запускается по команде, но опять только ручками :(
Причем в отличае от первого способа через INIT.d, результата автостарта через systemd в логах не видать
« Последнее редактирование: 23 Октября 2017, 17:31:34 от peis20 »

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6691
  • 20% Cooler
    • Просмотр профиля
Re: Как запустить один скрипт в другом
« Ответ #10 : 23 Октября 2017, 17:30:57 »
peis20, пока не расшифруете home, логично, что скрипта по этому пути не будет, тк данные home доступны только ПОСЛЕ логина пользователя. А у вас идет выполнение ДО логина.
🖥 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

Оффлайн peis20

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: Как запустить один скрипт в другом
« Ответ #11 : 24 Октября 2017, 10:30:22 »
Ребята всем спасибо за подсказки. Решил переносом и папки home в другую, и initd сразу заработал. Systemd не пробовал после этого перенастроить но думаю тоже работает.

 

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