командные интерпретатораы (запуск приложений)

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

Модератор: Bizdelnick

Аватара пользователя
panic
Сообщения: 30

командные интерпретатораы

Сообщение panic »

Help
Если с терминала запускать какое либо приложение то вываливает кучу отладочной информации и он остается занят этим приложение. А если закрыть этот терминал закроется и приложение! приходится запускать новый терминал и продолжать работу.

Подскажите как запустить приложение что бы рабочий шел остался свободным!
И если можно сылочку на хорошую, русскую доку по командным интерпретаторам (желательно bash)

заранее благодарен всем ответившим!
Спасибо сказали:
Аватара пользователя
rolano
Сообщения: 845
Статус: еще один юзер FreeBSD
ОС: какая-то

Re: командные интерпретатораы

Сообщение rolano »

Если после команды задать &, то она уйдет на фоновое исполнение
Я знаю только то, что ничего не знаю ... потому и обречен вечно учиться.
Спасибо сказали:
Аватара пользователя
panic
Сообщения: 30

Re: командные интерпретатораы

Сообщение panic »

rolano писал(а):
19.12.2005 18:50
Если после команды задать &, то она уйдет на фоновое исполнение

именно это и хотел узнать !!)))
Спасибо сказали:
allez
Сообщения: 2223
Статус: Не очень злой админ :-)
ОС: SuSE, CentOS, FreeBSD, Windows

Re: командные интерпретатораы

Сообщение allez »

Вы, насколько я понял, работаете в Иксах. Поэтому вот вам на выбор несколько решений:

1. Использовать в конце командной строки символ "&" для запуска приложения в фоновом режиме (man bash, раздел "Job control"). После этого терминалом можно будет пользоваться дальше. Чтобы избавиться от отладочной информации и сообщений об ошибках перенаправьте STDOUT и STDERR в /dev/null, вставив после команды такую конструкцию: >/dev/null 2>&1.

2. Воспользуйтесь командой nohup (man nohup). В этом случае окно терминала можно будет безболезненно закрыть.

3. Воспользуйтесь средствами запуска программ вашего оконного менеджера (среды). Поищите в главном меню пункт "Выполнить программу...", "Run..." или что-то подобное. Введите вашу командную строку в поле ввода и запускайте. Терминал в этом случае вообще не понадобится, за исключением запуска консольных приложений, но их-то как раз из терминала можно запустить (да и нужно - зачем лишние телодвижения делать?).

Что же до документации на русском - таки учите этот самый английский или в крайнем случае читайте доки на том иностранном языке, которым владеете. Это не вина наша, а беда, виноваты те, кто в свое время дружно называл кибернетику "продажной девкой империализма". А если уж кроме родного ничего не знаете и учить не хотите - в поиск, в поиск. Переводы есть и вы их легко найдете, но будьте готовы к тому, что они могут оказаться неточными или устаревшими.

P.S. Пока писал свой опус, rolano уже ответил. Что же, краткость - сестра таланта. :) Прошу мое сообщение плагиатом не считать. :)
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: командные интерпретатораы

Сообщение t.t »

(allez @ Dec 19 2005, в 19:13) писал(а):>/dev/null 2>&1
Как вариант: &>/dev/null

(allez @ Dec 19 2005, в 19:13) писал(а):Воспользуйтесь командой nohup
Вот за это спасибо -- забыл совсем.

Хочу немного добавить: ещё можно контролировать такие моменты через средства управления "работами" (jobs)/ Каждый процесс, инициированный с терминала, ассоциируется на этом терминале с номером работы. Если процесс инициирован не в фоновом режиме, его можно сначала приостановить нажатием Ctrl+Z в терминале, после чего будет выведена строка типа

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

[1]+  Stopped                 имя-процесса

Число в квадратных скобках -- и есть номер работы. Список всех работ на текущем терминале можно посмотреть командой jobs (см. man jobs); отправить работу в фон -- командой bg номер-работы (от слова background, см. man bg), вернуть работу из фона -- командой fg номер-работы (от слова foreground, см. man fg) или %имя-процесса (без пробела).
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
allez
Сообщения: 2223
Статус: Не очень злой админ :-)
ОС: SuSE, CentOS, FreeBSD, Windows

Re: командные интерпретатораы

Сообщение allez »

... а потом пришел t.t и все не просто разложил по полочкам, но еще и подписал эти самые полочки, а также сделал соответствующие записи в каталожной книге. :) За что и снискал заслуженное уважение (по крайней мере, мое - точно).
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: командные интерпретатораы

Сообщение t.t »

2allez: Вы первый начали :)
(allez @ Dec 19 2005, в 21:21) писал(а):снискал заслуженное уважение (по крайней мере, мое - точно)
Взаимно.

Ах да, забыл совсем..
(panic @ Dec 19 2005, в 18:42) писал(а):И если можно сылочку на хорошую, русскую доку по командным интерпретаторам (желательно bash)
http://gazette.linux.ru.net/rus/articles/i...-abs-guide.html
классика
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
allez
Сообщения: 2223
Статус: Не очень злой админ :-)
ОС: SuSE, CentOS, FreeBSD, Windows

Re: командные интерпретатораы

Сообщение allez »

Хм, а я вот решил, что "Advanced Bash-scripting guide" - не совсем тот документ, который имел в виду автор темы (мне почему-то про перевод man bash подумалось), но таки да, это классика и вреда от нее в любом случае быть не должно.
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: командные интерпретатораы

Сообщение t.t »

А перевод не то man bash, не то info bash я тоже где-то в сети видел, но мне он меньше понравился. Не знаю, не то перевод был хуже, не то просто от того, что в ABS я пока, в отличие от, находил _всё_, что искал.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
JaGoTerr
Сообщения: 380

Re: командные интерпретатораы

Сообщение JaGoTerr »

К словам t.t ещё можно добавить, что после того как вы приостановили выполнение программы (нажатием Ctrl-Z) можно выполнить команду disown (есть в bash и zsh, в др. не знаю) чтобы "отцепить" процесс от вашего терминала, а затем kill -CONT -PID, чтобы продолжить приостановленный процесс. Всё. Терминал свободен, можете закрывать.

Детали: в случае с zsh необходимо установить опцию nohup (setopt nohup), чтобы отцепленные подобным образом процессы не убивались при завершении процесса интепретатора.
Спасибо сказали:
Аватара пользователя
madskull
Сообщения: 1019
Статус: Экс-металлюга

Re: командные интерпретатораы

Сообщение madskull »

JaGoTerr писал(а):
20.12.2005 10:48
К словам t.t ещё можно добавить, что после того как вы приостановили выполнение программы (нажатием Ctrl-Z) можно выполнить команду disown (есть в bash и zsh, в др. не знаю) чтобы "отцепить" процесс от вашего терминала, а затем kill -CONT -PID, чтобы продолжить приостановленный процесс. Всё. Терминал свободен, можете закрывать.

Детали: в случае с zsh необходимо установить опцию nohup (setopt nohup), чтобы отцепленные подобным образом процессы не убивались при завершении процесса интепретатора.

МощнА! Спасибо.

Век живи, а все равно неучем помрешь. :)
ArchLinux / IceWM
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: командные интерпретатораы

Сообщение t.t »

(madskull @ Dec 20 2005, в 11:02) писал(а):МощнА! Спасибо.
Присоединяюсь. Про disown я тоже не знал. По-моему, всё, что мы тут втроём наваяли, уже тянет на небольшую хаутуёвину. Могу слепить это всё вместе; allez, JaGoTerr, что скажете?
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
JaGoTerr
Сообщения: 380

Re: командные интерпретатораы

Сообщение JaGoTerr »

Я не против. Только надо в этом случае мой пост чуть развернуть, я написал весьма коротко и наспех, чтобы просто "указать направление" :) . Вечерком постараюсь сделать более расширенно. Тем паче, что например в bash и zsh синтаксис команды disown сильно разнится. Могу описать и тот и другой. Выложу сюда.
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: командные интерпретатораы

Сообщение t.t »

2JaGoTerr: ок, у меня всё равно сегодня на это времени не будет.

Думаю, будет хорошо, если более развёрнуто напишете (-шь? никак не вспомню, мы на "вы" или на "ты"? :))
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
Sparky
Сообщения: 604
Статус: core dumped
ОС: Plan 9

Re: командные интерпретатораы

Сообщение Sparky »

JaGoTerr писал(а):
20.12.2005 10:48
К словам t.t ещё можно добавить, что после того как вы приостановили выполнение программы (нажатием Ctrl-Z) можно выполнить команду disown (есть в bash и zsh, в др. не знаю) чтобы "отцепить" процесс от вашего терминала, а затем kill -CONT -PID, чтобы продолжить приостановленный процесс. Всё. Терминал свободен, можете закрывать.

Детали: в случае с zsh необходимо установить опцию nohup (setopt nohup), чтобы отцепленные подобным образом процессы не убивались при завершении процесса интепретатора.

Это как бы "демонизация" процесса. Прикольно, спасибо!
Блог
--------------------

GCS/M/MU/P/IT/E d- s: a- C++(+++) UBL++ P->-- L+++$ E- W+++$ N* o? K? w>--
O M-@ V- PS@ PE+ Y+ PGP+ t 5 X R* tv-->- b++ DI? D>+ G e+(++) h--- r+ y++
Спасибо сказали:
Аватара пользователя
panic
Сообщения: 30

Re: командные интерпретатораы

Сообщение panic »

t.t писал(а):
20.12.2005 11:21
(madskull @ Dec 20 2005, в 11:02) писал(а):МощнА! Спасибо.
Присоединяюсь. Про disown я тоже не знал. По-моему, всё, что мы тут втроём наваяли, уже тянет на небольшую хаутуёвину. Могу слепить это всё вместе; allez, JaGoTerr, что скажете?


я бы с радостью стал счастливым вникателем в эту "хаутуёвину"!!!

а за сылочку спасибо
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: командные интерпретатораы

Сообщение t.t »

(panic @ Dec 20 2005, в 14:26) писал(а):я бы с радостью стал счастливым вникателем в эту "хаутуёвину"!!!
Как будет готово, сообщу в эту же тему.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
panic
Сообщения: 30

Re: командные интерпретатораы

Сообщение panic »

t.t писал(а):
20.12.2005 14:56
(panic @ Dec 20 2005, в 14:26) писал(а):я бы с радостью стал счастливым вникателем в эту "хаутуёвину"!!!
Как будет готово, сообщу в эту же тему.

OK. :)
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu

Re: командные интерпретатораы

Сообщение alv »

t.t писал(а):
20.12.2005 14:56
(panic @ Dec 20 2005, в 14:26) писал(а):я бы с радостью стал счастливым вникателем в эту "хаутуёвину"!!!
Как будет готово, сообщу в эту же тему.

пишем? в дополнение к имеющемуся про автодоплнения?
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: командные интерпретатораы

Сообщение t.t »

(alv @ Dec 20 2005, в 19:11) писал(а):пишем? в дополнение к имеющемуся про автодоплнения?
Ну да, видишь, уже идёт работа:
(t.t @ Dec 20 2005, в 11:21) писал(а):По-моему, всё, что мы тут втроём наваяли, уже тянет на небольшую хаутуёвину. Могу слепить это всё вместе; allez, JaGoTerr, что скажете?
(JaGoTerr @ Dec 20 2005, в 11:56) писал(а):Я не против. Только надо в этом случае мой пост чуть развернуть, я написал весьма коротко и наспех, чтобы просто "указать направление" . Вечерком постараюсь сделать более расширенно. Тем паче, что например в bash и zsh синтаксис команды disown сильно разнится. Могу описать и тот и другой. Выложу сюда.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
allez
Сообщения: 2223
Статус: Не очень злой админ :-)
ОС: SuSE, CentOS, FreeBSD, Windows

Re: командные интерпретатораы

Сообщение allez »

По-моему, всё, что мы тут втроём наваяли, уже тянет на небольшую хаутуёвину. Могу слепить это всё вместе; allez, JaGoTerr, что скажете?
Возражениев не имею. :)
Спасибо сказали:
Аватара пользователя
JaGoTerr
Сообщения: 380

Re: командные интерпретатораы

Сообщение JaGoTerr »

Времени не было вчера. Уж извините, наобещал и не сделал :)
Но я напишу.
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: командные интерпретатораы

Сообщение t.t »

2JaGoTerr: да ничего, я всё равно тоже пока занят.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали: