[Решено] Запуск программ из консоли без привязки к ней

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

KernelPanic
Бывший модератор
Сообщения: 2060
Статус: Brain Атаке
ОС: Debian squeeze/sid/exp

[Решено] Запуск программ из консоли без привязки к ней

Сообщение KernelPanic »

Недавно где-то на форуме видел сообщение про запуск приложения из консоли без привязки к самой консоли, но вот найти никак не могу :(. Осваиваю IceWM, хочу, чтоб приложения к консоли не привязывались.
Подскажите, как правильно запускать.
Спасибо сказали:
Аватара пользователя
MUTOgen
Сообщения: 343
Статус: i like the way you move
ОС: OpenSuse 11.1

Re: [Решено] Запуск программ из консоли без привязки к ней

Сообщение MUTOgen »

From Викиучебник
"Как запустить программу в фоне, без привязки к терминалу?

user@linux# nohup COMMAND [ARG]...

Программа nohup запускает COMMAND таким образом, что она игнорирует сигнал hangup, что позволяет ей продолжать работу и после выхода из терминала. Также, она перенаправляет весь вывод программы в файл $HOME/nohup.out и понижает приоритет выполняемой программы.
"
Спасибо сказали:
Аватара пользователя
--=Civil696=--
Сообщения: 227
ОС: Gentoo o_O

Re: [Решено] Запуск программ из консоли без привязки к ней

Сообщение --=Civil696=-- »

если под привязкой имеется ввиду то что программа "умирает" при закрытии терминала то вроде както так:
http://ru.wikipedia.org/wiki/Nohup

ЗЫ блин не успел :(
НЕ ПАНИКУЙ © ^_~
Спасибо сказали:
KernelPanic
Бывший модератор
Сообщения: 2060
Статус: Brain Атаке
ОС: Debian squeeze/sid/exp

Re: [Решено] Запуск программ из консоли без привязки к ней

Сообщение KernelPanic »

Ок, спасибо, теперь прога не умирает при закрытии терминала, на вот сессия в терминале виснет, пока прогу не закроешь, я хотел как раз от этого избавиться.
Спасибо сказали:
Аватара пользователя
Black
Сообщения: 1104
ОС: ArchLinux

Re: [Решено] Запуск программ из консоли без привязки к ней

Сообщение Black »

Код: Выделить всё

nohup program &

?
Компьютер служит для решения тех проблем, которых до изобретения компьютера не существовало
Спасибо сказали:
KernelPanic
Бывший модератор
Сообщения: 2060
Статус: Brain Атаке
ОС: Debian squeeze/sid/exp

Re: [Решено] Запуск программ из консоли без привязки к ней

Сообщение KernelPanic »

Отлично, Black, уже намного лучше, но вот терминал не возвращается в исходное состояние, пока не нажмешь Enter, может еще какое "извращение" есть :)?
Спасибо сказали:
Аватара пользователя
Denjs
Сообщения: 1685
ОС: SuSe 10.2

Re: [Решено] Запуск программ из консоли без привязки к ней

Сообщение Denjs »

а в чем проблемы нажать enter?
какая перед вами задача стоит? что вы хотите сделать? для чего использовать nohup?
QDroid - Среда исполнения и фреймворк для QtScript.
OTPD - Открытые драйвера промышленных принтеров чеков и этикеток (кроссплатформенная подсистема печати).
Спасибо сказали:
KernelPanic
Бывший модератор
Сообщения: 2060
Статус: Brain Атаке
ОС: Debian squeeze/sid/exp

Re: [Решено] Запуск программ из консоли без привязки к ней

Сообщение KernelPanic »

Denjs писал(а):
17.07.2008 01:09
а в чем проблемы нажать enter?
Да нет проблем, просто, возможно есть еще варианты.

Denjs писал(а):
17.07.2008 01:09
какая перед вами задача стоит? что вы хотите сделать? для чего использовать nohup?
Прочитайте с самого начала, я хотел, чтоб после запуска терминал возвращался в исходное состояние, было запущено приложение и между ними не было связи больше, не так уж и много, не так ли? ;)
Спасибо сказали:
Аватара пользователя
landgraf
Сообщения: 2142
Статус: *бунту ненавистник
ОС: linux

Re: [Решено] Запуск программ из консоли без привязки к ней

Сообщение landgraf »

а вообще достаточно поставить &
после команды, и ничего не умирает и не виснет :tongue:

пример skype &
Спасибо сказали:
Аватара пользователя
Reboot
Сообщения: 321
Статус: Красен глаз -- темна душа

Re: [Решено] Запуск программ из консоли без привязки к ней

Сообщение Reboot »

landgraf, шмякнешь skype & закроешь консоль и скайп навернётся. Уже говорили про решение этого -- nohup.

KernelPanic я кажется понял о чём вы, но это не так то просто ^^ лучшебы описали в "картинко\цитатах"
вы наверно имеете ввиду, что послле запуска в фоне, появлятся доп инфа типа
" [1] 9193 "
**возможны сообщения программы **

да?
если да, то ввод нажимать не обязательно ^^ хотя лучше шмякнуть.
если не нравятся сообщения прогрммы, направляйте её вывод в /dev/null
Мой компьютер зовут Марвин
Спасибо сказали:
Аватара пользователя
StasikOS
Сообщения: 82
ОС: Ubuntu Lucid Lynx

Re: [Решено] Запуск программ из консоли без привязки к ней

Сообщение StasikOS »

Используй screen. Это позволит:
1. Запустить приложение и закрыть терминал.
2. Открыть другой терминал или vty или даже зайти на машину по ssh и вернуться к приложению.
Спасибо сказали:
KernelPanic
Бывший модератор
Сообщения: 2060
Статус: Brain Атаке
ОС: Debian squeeze/sid/exp

Re: [Решено] Запуск программ из консоли без привязки к ней

Сообщение KernelPanic »

Reboot писал(а):
17.07.2008 07:40
KernelPanic я кажется понял о чём вы, но это не так то просто ^^ лучшебы описали в "картинко\цитатах"
вы наверно имеете ввиду, что послле запуска в фоне, появлятся доп инфа типа
" [1] 9193 "
**возможны сообщения программы **
Не совсем, мне конкретно не нравится только то, что терминал не возвращается к строке ввода, пока не нажмеешь Enter, а то что он pid процесса пишет - это не страшно.

Reboot писал(а):
17.07.2008 07:40
если не нравятся сообщения прогрммы, направляйте её вывод в /dev/null
Я с консолью не очень в этом отношении дружен, не подскажите ли как?
Спасибо сказали:
KernelPanic
Бывший модератор
Сообщения: 2060
Статус: Brain Атаке
ОС: Debian squeeze/sid/exp

Re: [Решено] Запуск программ из консоли без привязки к ней

Сообщение KernelPanic »

StasikOS писал(а):
17.07.2008 08:06
Используй screen.
Не совсем понял смысл использования, может подскажите опцию для запуска.
К примеру, мне надо запустить kwrite, я прописывал с nohup:
nohup kwrite &
А с использованием screen чего-тот не пойму, что писать, пробую тупо screen kwrite, дак он весь терминал вообще очищает и переходит в режим ожидания, пока приложение не закроешь.
Спасибо сказали:
Аватара пользователя
Black
Сообщения: 1104
ОС: ArchLinux

Re: [Решено] Запуск программ из консоли без привязки к ней

Сообщение Black »

Код: Выделить всё

nohup program > /dev/null &
Компьютер служит для решения тех проблем, которых до изобретения компьютера не существовало
Спасибо сказали:
KernelPanic
Бывший модератор
Сообщения: 2060
Статус: Brain Атаке
ОС: Debian squeeze/sid/exp

Re: [Решено] Запуск программ из консоли без привязки к ней

Сообщение KernelPanic »

Спасибо, Black, теперь все работает, именно так, как мне надо было, придется скриптик накатать :)
Спасибо всем за помощь и внимание :)
Спасибо сказали:
Аватара пользователя
StasikOS
Сообщения: 82
ОС: Ubuntu Lucid Lynx

Re: [Решено] Запуск программ из консоли без привязки к ней

Сообщение StasikOS »

KernelPanic писал(а):
17.07.2008 09:43
StasikOS писал(а):
17.07.2008 08:06
Используй screen.
Не совсем понял смысл использования, может подскажите опцию для запуска.
К примеру, мне надо запустить kwrite, я прописывал с nohup:
nohup kwrite &
А с использованием screen чего-тот не пойму, что писать, пробую тупо screen kwrite, дак он весь терминал вообще очищает и переходит в режим ожидания, пока приложение не закроешь.

А мне вот тогда не очень понятен ваш вопрос. ) "Недавно где-то на форуме видел сообщение про запуск приложения из консоли без привязки к самой консоли, но вот найти никак не могу" подразумевает именно screen, так как он отвязывает приложения от конкретного терминала. Догадаться, что вы имеете в виду именно запуск приложения X Window System из вашего вопроса, несмотря на довольно-таки развитую тему невозможно (я не знаю, какими телепатическими навыками обладает Black, что ему это удалось). Понять связь между "консолью" и IceWM мне тоже не удалось.
Еще непонятно, почему вы не читаете this funny manual. ) screen это еще один виртуальный терминал, который не закрывается после обрыва связи, вот и все. Поэтому если и запускать что-то из него, то делается это так:
$ screen
$ mc
и закрыть терминал.
После чего терминал можно открыть и выполнить screen -r чтобы вернуться к запущенному mc.
Спасибо сказали:
KernelPanic
Бывший модератор
Сообщения: 2060
Статус: Brain Атаке
ОС: Debian squeeze/sid/exp

Re: [Решено] Запуск программ из консоли без привязки к ней

Сообщение KernelPanic »

Гыы, именно потому что он very funny, мне нужно отправную точку, которая покажет, что это функционально и делает то, что мне нужно.
После того, как я увижу, что это работает, я его прочитаю, здесь конкретное решение требуется.
Наверное, у нас здесь атмосферные условия с Black'ом совпадают (Омск), вот и понимаем друг друга быстрее ;).
В IceWM есть xterm - это и есть консоль. Я запускал приложения из нее :), и направлено сие действие на GUI-приложения, нужна была развязка, при которой консоль продолжала бы выполнять функции консоли, а приложение было запущено и не было бы между ними никакой больше связи, вроде бы понятно описал.
Спасибо сказали:
Аватара пользователя
Reboot
Сообщения: 321
Статус: Красен глаз -- темна душа

Re: [Решено] Запуск программ из консоли без привязки к ней

Сообщение Reboot »

KernelPanic,
// кстати, лучшая книга во всей вселенной говорит DON'T PANIC
"проблема" ваша, как я понял, решена, и это прекрасно, косяк только вот в чём -- это решение вы могли сами получить. Просто нужно было неммного почитать о работе в консоле, возможно вы ещё много фишек не знаете, которые значительно облегчают жизнь.
И немного офтопом -- на кой ляд нужно часто запускать приложения из консоли?
хоткеи наше фсё! (ну если вы запускаете то, что есть в $PATH )
Мой компьютер зовут Марвин
Спасибо сказали:
KernelPanic
Бывший модератор
Сообщения: 2060
Статус: Brain Атаке
ОС: Debian squeeze/sid/exp

Re: [Решено] Запуск программ из консоли без привязки к ней

Сообщение KernelPanic »

Я в этом не сомневаюсь ;) Хоткеи пока не юзаю, так что приходится изворачиваться.
Да, проблема решена :)
Спасибо сказали:
Аватара пользователя
Lonli-Lokli
Сообщения: 38

Re: [Решено] Запуск программ из консоли без привязки к ней

Сообщение Lonli-Lokli »

С оперой nohup не работает.

$ nohup opera&
$ ^d

закрывается терминал а вместе с ним и окошко оперы. отчего так?
Спасибо сказали:
Аватара пользователя
Lonli-Lokli
Сообщения: 38

Re: [Решено] Запуск программ из консоли без привязки к ней

Сообщение Lonli-Lokli »

нашёл работающий вариант

$ opera&
$ disown opera
$ ^d

вот только, как я понял, disown спецефичен для bash. что ещё есть для этих целей?
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: [Решено] Запуск программ из консоли без привязки к ней

Сообщение watashiwa_daredeska »

То, что вам хочется -- типичный демон. Возможно, поможет daemon.
Спасибо сказали:
Аватара пользователя
Reboot
Сообщения: 321
Статус: Красен глаз -- темна душа

Re: [Решено] Запуск программ из консоли без привязки к ней

Сообщение Reboot »

Lonli-Lokli, opera действительно вылетает при этом.
но! перенаправление вывода в null помогает.
т.е. так
nohup opera & > /dev/null
запустив оперу, можно закрывать терминал.
p.s. вывод именно в null не обязателен, можно в файл
p.p.s. лучше поставте себе запускалку (dmenu например), и повесте её на хоткей.
Мой компьютер зовут Марвин
Спасибо сказали:
Аватара пользователя
Lonli-Lokli
Сообщения: 38

Re: [Решено] Запуск программ из консоли без привязки к ней

Сообщение Lonli-Lokli »

Reboot писал(а):
27.05.2009 15:57
Lonli-Lokli, opera действительно вылетает при этом.
но! перенаправление вывода в null помогает.
т.е. так
nohup opera & > /dev/null
запустив оперу, можно закрывать терминал.
p.s. вывод именно в null не обязателен, можно в файл
p.p.s. лучше поставте себе запускалку (dmenu например), и повесте её на хоткей.


Тогда уж
nohup opera 2>&1 > /dev/null &
чтоб в ~/nohup.out не гадила

интересовался не из-за практической необходимости) недавно надо было под офтопом сделать пускалку оперы как раз, т.к. она подолгу не выгружалась из памяти после закрытия окна. получилось вот это

> taskkill /t /f /im opera.exe
> start /d "%programfiles%\opera\" opera.exe

стало интересно какие грабли могут попасться в этом направлении под линём
Спасибо сказали:
sunde
Сообщения: 2

Re: [Решено] Запуск программ из консоли без привязки к ней

Сообщение sunde »

Уже конечно баян и много времени прошло с момента последнего коммента, но все же, столкнулся с идентичной проблемой, но то что было описано здесь не совсем подходило.
Немного погуглив нашел замечальный ответ :rolleyes:
Им и решил поделится так как может кому нибудь пригодится в будущем. Спас меня screen, а именно:

Код: Выделить всё

screen -d -m -S session_name progname

Где:
-d, -m - запуск сессии в detatch режиме (для стартовых скриптов).
-S session_name - устанавливает имя для данной сессии.
progname - собственно сама запускаемая программа.
Позже к этой программе можно будет вернутся(если например вам нужен будет консольный вывод) используя:

Код: Выделить всё

screen -r session_name

Ну и напоследок пару примеров:

Код: Выделить всё

screen -d -m -S skype_session skype
screen -d -m -S my_script /home/username/myscript

Надеюсь кому нибудь будет полезно! :drinks:
Спасибо сказали: