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


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

Автор Тема: Как в скрипте указать закрытие теримнала  (Прочитано 2931 раз)

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

Оффлайн bourger

  • Автор темы
  • Новичок
  • *
  • Сообщений: 48
    • Просмотр профиля
В скрипте предусмотрен запуск программы.
Как завершить скрипт, чтобы после запуска программы терминал закрылся, а программа осталась работать?
disown ;
exit
не работает - терминал остается, программа зависит от него.

Oni-chan

  • Гость
Имя_программы &
Только не со всеми программами будет работать. При закрытии терминала посылается SIGHUP, на который программы реагируют по разному

Оффлайн VestniK

  • Активист
  • *
  • Сообщений: 594
    • Просмотр профиля
Цитировать
При закрытии терминала посылается SIGHUP, на который программы реагируют по разному
На сей случай существует nohup

Оффлайн bourger

  • Автор темы
  • Новичок
  • *
  • Сообщений: 48
    • Просмотр профиля
Имя_программы & сработало, спасибо!

Пользователь решил продолжить мысль 03 Май 2010, 01:27:02:
Да, сработать-то оно сработало, но окно терминала от этого не закрылось...
nohup program_nameтоже не дало нужного эффекта...
« Последнее редактирование: 03 Май 2010, 01:27:02 от bourger »

Оффлайн ArcFi

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 15194
    • Просмотр профиля
    • aetera.net
А если запускать без открытия окна терминала?

Оффлайн VestniK

  • Активист
  • *
  • Сообщений: 594
    • Просмотр профиля
скрипт запускается в отдельной версии интерпретатора bash и exit зарывает именно его,  а не родительский терминал. Попробуй запустить скрипт:
#!/bin/bash

nohup sleep 5m;
disown
exit
двумя способами:
chmod +x test.sh
./test.sh
и
. test.sh
второй случай отработает так как ты хочешь.

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

Оффлайн bourger

  • Автор темы
  • Новичок
  • *
  • Сообщений: 48
    • Просмотр профиля
Да, терминал теперь закрывается сам через минуту (я указал интервал поменьше) - но только если не вписывать в скрипт запуск постороней программы. Если же вписать, то окно терминала закрывается через минуту после закрытия этой программы.
Задача, собственно, простая: хотелось бы одним скриптом выполнить монтирование дисков и запуск торрент-клиента, но чтобы лишних окон при этом не оставалось  :idiot2:

Оффлайн v@dik

  • Активист
  • *
  • Сообщений: 409
    • Просмотр профиля
Да, терминал теперь закрывается сам через минуту (я указал интервал поменьше) - но только если не вписывать в скрипт запуск постороней программы. Если же вписать, то окно терминала закрывается через минуту после закрытия этой программы.
Задача, собственно, простая: хотелось бы одним скриптом выполнить монтирование дисков и запуск торрент-клиента, но чтобы лишних окон при этом не оставалось  :idiot2:
А зачем вообще открывать терминал? Сделайте кнопку запуска и пропишите в ней команду запуска нужного скрипта.

Оффлайн bourger

  • Автор темы
  • Новичок
  • *
  • Сообщений: 48
    • Просмотр профиля
Не получается с помощью кнопки выполнить скрипт: после запроса пароля (рута) диски монтируются, но программа не запускается:
Цитировать
Не удалось открыть «/root/.config/transmission/lock»: Отказано в доступе
Чехарда с правами - как ее исправить?

Оффлайн v@dik

  • Активист
  • *
  • Сообщений: 409
    • Просмотр профиля
Вместо sudo используйте gksu или gksudo (смотря что установлено и что больше нравиться) и будет вам запрос пароля в графическом режиме.

Не удалось открыть «/root/.config/transmission/lock»: Отказано в доступе
Чехарда с правами - как ее исправить?
Не стоит в таких каталогах менять права доступа. :)

Торентами не пользуюсь, но transmission обязательно запускать от рута?
« Последнее редактирование: 03 Май 2010, 22:35:26 от v@dik »

Оффлайн bourger

  • Автор темы
  • Новичок
  • *
  • Сообщений: 48
    • Просмотр профиля
Transmission как раз-таки нужно запустить от обычного пользователя, а диски смонтировать - от рута...
Короче, вот скрипт: sudo mount то-то и то-то туда-то и сюда-то &&
sudo -u username transmission &
exit
Вот кнопка:gksu /путь/до/скриптаПри нажатии на кнопку выходит запрос рутового пароля, потом монтируются диски, а потом выскакивает вышеуказанное сообщение о невозможности запуска transmission.

Оффлайн v@dik

  • Активист
  • *
  • Сообщений: 409
    • Просмотр профиля
Попробуйте в самом скрипте заменить sudo на gksu. А сам скрипт запускать без gksu.

да и вроде нужно так sudo -u username -H ransmission & хотя не уверен, что именно ваш случай.
« Последнее редактирование: 03 Май 2010, 23:12:51 от v@dik »

Оффлайн bourger

  • Автор темы
  • Новичок
  • *
  • Сообщений: 48
    • Просмотр профиля
Цитата: v@dik
Попробуйте в самом скрипте заменить sudo на gksu. А сам скрипт запускать без gksu
В этом случае происходит все наоборот: диски не монитруются, а transmission запускается (впустую, ибо раздавать нечего, качать некуда :))
С опцией -H не стартует и transmission...
« Последнее редактирование: 03 Май 2010, 23:20:03 от bourger »

Оффлайн v@dik

  • Активист
  • *
  • Сообщений: 409
    • Просмотр профиля
В этом случае происходит все наоборот: диски не монитруются, а transmission запускается (впустую, ибо раздавать нечего, качать некуда :))
Не могёт такого быть. Если из терминала скрипт отрабатывал нормально, то и при запуске кнопкой (с заменой gksu на sudo), все должно нормально работать. Поскольку gksu всего навсего запрашивает пароль в графическом окне, в остальном выполняет функции sudo.

Оффлайн bourger

  • Автор темы
  • Новичок
  • *
  • Сообщений: 48
    • Просмотр профиля
Погодите, я запутался: в скрипте вместо sudo написать gksu, правильно?
А в кнопке что - sudo, gksu или ничего?

Пользователь решил продолжить мысль 04 Май 2010, 00:27:59:
Сейчас скрипт выглядит так: gksu mount то-то и то-то туда-то и сюда-то &&
gksu -u username transmission &
exit
, а кнопка так: /путь/до/скриптапри этом монтирования не происходит, а transmission запускается.
« Последнее редактирование: 04 Май 2010, 00:27:59 от bourger »

 

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