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


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

Автор Тема: Запуск скрипта с дочерними из Session and Startup  (Прочитано 1188 раз)

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

Оффлайн Deep_Dreamer

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Добрый день.

Имею скрипт startup.sh следующего содержания:
#!/bin/bash
program1 &
program2 &
Program3 &
sleep 10

Соответственно если запускать его из под терминала, то запускаются все три программы, скрипт завершает свою работу, программы висят и делают своё дело.
Однако, если запускать его из Session and Startup, то несмотря на & при окончании выполнения скрипта он закрывается и закрываются все дочерние процессы.

Вопрос - как сделать так, чтобы они продолжали работать?
« Последнее редактирование: 19 Марта 2014, 09:37:04 от Deep_Dreamer »

Оффлайн artifactor

  • Старожил
  • *
  • Сообщений: 1769
    • Просмотр профиля
    • Leaf Watoru's notes
Re: Запуск скрипта с дочерними из Session and Startup
« Ответ #1 : 19 Марта 2014, 12:54:51 »
поставьте вначале sleep 5 или 10
также можно сделать, чтобы
program1 &
program2 &
Program3 &
было вот так:
program1 & program2 & Program3
Xubuntu 16.04 x64
Обои для рабочего стола и Space Ambient

Оффлайн JmAbuDabi

  • Старожил
  • *
  • Сообщений: 2468
  • 나는 빅터 해요. 나는 프로그래머입니다
    • Просмотр профиля
Re: Запуск скрипта с дочерними из Session and Startup
« Ответ #2 : 19 Марта 2014, 13:02:17 »
Можно еще в конце скрипта добавить disown -aЕсли оставить первую версию.


Главное чтобы программы не имели интерактивность.
Покой – это не место, где тихо и мирно, где нет шума и беспокойства.
Покой – это когда при всем этом, вы сохраняете мир и спокойствие в своем сердце.

Оффлайн Deep_Dreamer

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: Запуск скрипта с дочерними из Session and Startup
« Ответ #3 : 19 Марта 2014, 16:13:37 »
поставьте вначале sleep 5 или 10
также можно сделать, чтобы
program1 &
program2 &
Program3 &
было вот так:
program1 & program2 & Program3

sleep в начале и так стоял.

В чем сакральный смысл написания в одну строчку?
Впрочем не помогло.

Стартующие проги с GUI. А именно rdesktop, thunderbird и ещё штуки 4.

Оффлайн JmAbuDabi

  • Старожил
  • *
  • Сообщений: 2468
  • 나는 빅터 해요. 나는 프로그래머입니다
    • Просмотр профиля
Re: Запуск скрипта с дочерними из Session and Startup
« Ответ #4 : 19 Марта 2014, 16:22:58 »
Когда прога 3 закончит работу, то скрипт тоже её закончит.

Если в конец добавить строку указанную мной должно помочь стартонуть всех и никого не закрыть раньше времени.

Попробуй например ввести команду

sleep 10 && alert &
disown -a
exit

Увидишь, что alert сработал, даже после закрытия терминала.
Покой – это не место, где тихо и мирно, где нет шума и беспокойства.
Покой – это когда при всем этом, вы сохраняете мир и спокойствие в своем сердце.

Оффлайн Deep_Dreamer

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: Запуск скрипта с дочерними из Session and Startup
« Ответ #5 : 19 Марта 2014, 16:45:09 »
Вероятно я не совсем корректно обрисовал проблему с самого начала.
Дело в том, что если в Session and Startup (у меня English версия xubuntu) прописать просто startup.sh, он замечательно отработает и все проги останутся после того, как он закончится.

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

xfce4-terminal --maximize -x startup.sh

Вот именно в таком варианте запуска проги, запущеные как prog1 & из скрипта всё равно закрываются.

Оффлайн JmAbuDabi

  • Старожил
  • *
  • Сообщений: 2468
  • 나는 빅터 해요. 나는 프로그래머입니다
    • Просмотр профиля
Re: Запуск скрипта с дочерними из Session and Startup
« Ответ #6 : 19 Марта 2014, 16:54:23 »
Терминал тоже закрывается?

А допись disown помогает?

Еще вроде nohup есть.
Покой – это не место, где тихо и мирно, где нет шума и беспокойства.
Покой – это когда при всем этом, вы сохраняете мир и спокойствие в своем сердце.

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Запуск скрипта с дочерними из Session and Startup
« Ответ #7 : 19 Марта 2014, 16:56:27 »
Вангую: проги закрываются при закрытии терминала ? — так и должно быть, потому как терминал — процесс, а то что вы из под него запускаете — субпроцессы, т.е. при закрытии основного закрываются и суб.
« Последнее редактирование: 20 Марта 2014, 12:59:59 от Azure »
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн Deep_Dreamer

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: Запуск скрипта с дочерними из Session and Startup
« Ответ #8 : 20 Марта 2014, 09:03:00 »
Взглянул на проблему с другой стороны - решил "а зачем я пытаюсь всё в один скрипт засунуть?". И разбил на два:
После логина стартует startup.sh, в нем запускаются нужные GUI программы.
Второй (куда перенес всё, где мне необходимо видеть результат выполнения) запускаю из первого, но вызываю его как xfce4-terminal --maximize -x startup2.sh

В принципе добился того, что требовалось.

Всем большое спасибо!

 

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