Запуск скрипта в фоновом режиме

На самом деле это единственный раздел про unix на этом форуме

Модератор: /dev/random

Аватара пользователя
ripke
Сообщения: 85
ОС: Ubuntu 9.04, x86_64

Re: Запуск скрипта в фоновом режиме

Сообщение ripke » 06.05.2010 10:38

Я вот опять чего-то не понимаю. Можно было бы и обойтись без nohup таким образом

user@host

sudo shutdown -P 23:39 & [1] 428

Результат тот же, shutdown не привязывается к терминалу?
Спасибо сказали:

watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: Запуск скрипта в фоновом режиме

Сообщение watashiwa_daredeska » 06.05.2010 10:45

ripke писал(а):
06.05.2010 10:38
Результат тот же, shutdown не привязывается к терминалу?
Привязывается. При умирании терминала процессу прилетит сигнал (уже не помню, какой), действие по-умолчанию для которого — завершение процесса. nohup же отвязывается от терминала и сигнал процессу не прилетает. Кроме того, nohup переопределяет стандартные потоки ввода-вывода, так что процесс не попытается читать/писать на терминал, если сам специально для этого не извратится (но это уже отдельная проблема).
Спасибо сказали:

Аватара пользователя
ripke
Сообщения: 85
ОС: Ubuntu 9.04, x86_64

Re: Запуск скрипта в фоновом режиме

Сообщение ripke » 06.05.2010 10:52

watashiwa_daredeska писал(а):
06.05.2010 10:45
ripke писал(а):
06.05.2010 10:38
Результат тот же, shutdown не привязывается к терминалу?
Привязывается. При умирании терминала процессу прилетит сигнал (уже не помню, какой), действие по-умолчанию для которого — завершение процесса. nohup же отвязывается от терминала и сигнал процессу не прилетает. Кроме того, nohup переопределяет стандартные потоки ввода-вывода, так что процесс не попытается читать/писать на терминал, если сам специально для этого не извратится (но это уже отдельная проблема).

А вот и нет. Делаю так

user@host

~$ sudo shutdown -P 23:39 & [1] 1305 ~$ Широковещательное сообщение от user@ubuntu (/dev/pts/0) в 17:49... Система будет остановлена для power off через 350 минут(ы)! ~$ jobs [1]+ Running sudo shutdown -P 23:39 & ~$ ps ax | grep shutdown 1305 pts/0 S 0:00 shutdown -P 23:39 1308 pts/0 S+ 0:00 grep shutdown

Дальше закрываю окно (тут по-вашему shutdown должен убиться?), открываю новое

user@host

~$ jobs ~$ ps ax | grep shutdown 1305 ? S 0:00 shutdown -P 23:39 1506 pts/1 S+ 0:00 grep shutdown ~$
Спасибо сказали:

watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: Запуск скрипта в фоновом режиме

Сообщение watashiwa_daredeska » 06.05.2010 10:57

ripke писал(а):
06.05.2010 10:52
А вот и нет
Значит shutdown умеет перехватывать и игнорировать этот сигнал, что неудивительно, при её-то назначении, и никакой nohup ей не нужен.
Спасибо сказали:

Аватара пользователя
ripke
Сообщения: 85
ОС: Ubuntu 9.04, x86_64

Re: Запуск скрипта в фоновом режиме

Сообщение ripke » 06.05.2010 11:37

А как запустить в фоне из терминала какой-нибудь процесс по расписанию с помощью at. В at нужно энтер нажимать а в конце ctrl d. Подумал про такое
nohup sudo at 23:30; poweroff ^D & < /dev/null
не то
Спасибо сказали:

Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Запуск скрипта в фоновом режиме

Сообщение sash-kan » 06.05.2010 11:39

ripke
да не нужен вам nohup. всё нормально и так в фоне работает:

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

$ bash
$ sleep 100 &
[1] 18315
$ jobs
[1]+  Running                 sleep 100 &
$ exit
exit
$ jobs
$ ps ax | grep sleep
18315 pts/2    S      0:00 sleep 100
18338 pts/2    S+     0:00 grep sleep


ripke писал(а):
06.05.2010 11:37
nohup sudo at 23:30; poweroff ^D & < /dev/null

$ echo sudo poweroff | at 23:30
только, естественно, sudo нужно настроить на беспарольное выполнение хотя бы этой команды.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:

QWERTYASDF
Сообщения: 924
Статус: Чайник со свистком
ОС: GNU/Linux

Re: Запуск скрипта в фоновом режиме

Сообщение QWERTYASDF » 10.08.2015 20:06

Здравствуйте. Сейчас для своего недавно (относительно) поставленного Slackware выбираю между screen и tmux. Что мне надо сейчас, насколько могу это осознать - 2 или больше окна с терминальными сессиями в одном окне xterm/ttyX соответственно для интерактивной работы в этих окнах. Афаик, как для зеленого новичка - обе утилиты по самым базовым возможностям (например там отсоединение от запущенного сеанса без его обрыва, переключение между окнами и т.п.) примерно одинаковы. Оба проекта, насколько понимаю, активно развиваются на данный момент. Из этого всего хотелось бы:

1. Прочитать свежее мнение резонных людей по вопросу screenVStmux. Надеюсь для себя таки вычленить факты, достаточные для четкого принятия решения чем пользоваться. Ну вот например читала мнение якобы про большую интегрированность screen с различными утилитами/методами работы, а tmux мол это больше попытка избавиться от screen.

2. Уточнить вопрос о возможности разделения в screen окон по вертикали. Я так понимаю, что нет такой возможности? Мне как-раз очень хочется ее.

Заранее спасибо : )
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 15750
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Запуск скрипта в фоновом режиме

Сообщение Bizdelnick » 10.08.2015 20:11

QWERTYASDF писал(а):
10.08.2015 20:06
Что мне надо сейчас, насколько могу это осознать - 2 или больше окна с терминальными сессиями в одном окне xterm/ttyX соответственно для интерактивной работы в этих окнах.

А почему не несколько окон xterm? Зачем добавлять лишние сущности, когда всё необходимое для решения поставленной задачи уже есть?
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
нюанс
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

QWERTYASDF
Сообщения: 924
Статус: Чайник со свистком
ОС: GNU/Linux

Re: Запуск скрипта в фоновом режиме

Сообщение QWERTYASDF » 10.08.2015 20:24

Bizdelnick писал(а):
10.08.2015 20:11
QWERTYASDF писал(а):
10.08.2015 20:06
Что мне надо сейчас, насколько могу это осознать - 2 или больше окна с терминальными сессиями в одном окне xterm/ttyX соответственно для интерактивной работы в этих окнах.

А почему не несколько окон xterm? Зачем добавлять лишние сущности, когда всё необходимое для решения поставленной задачи уже есть?

Почему лишние сущности? По крайней мере чем открытие еще одного окна xterm-а менее лишняя сущность нежели окно мультиплексора?

Ну, например я сравниваю те-же конфиги. Мне лично удобнее набрать screen/tmux и щелкнуть комбинацию создания разделенных окон, чем открывать еще один xterm, выравнивать до нужных размеров, потом соотносить два окна xterm соответствующим образом. Понимаю, что можно попытаться настроить автоматическое позиционирование и размеры этих окона в wm. Но во первых для меня пока что это оказалость слишком сложно, а во вторых вариант с мультиплексером универсальнее - и для иксов и для виртуальной консоли. Ну и да, такая возможность как отсоединение от запущенного сеанса без его завершения с возможностью потом к нему присоединиться с локальной или с другой машины - тоже, хоть пока мною не используется, но очень в перспективе интересует и в самом ближайшем будущем скорей всего будет использоваться (rtorrent запускать в фоне)
Спасибо сказали:

Аватара пользователя
Hephaestus
Сообщения: 2573
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: Запуск скрипта в фоновом режиме

Сообщение Hephaestus » 10.08.2015 22:25

QWERTYASDF писал(а):
10.08.2015 20:24
Почему лишние сущности? По крайней мере чем открытие еще одного окна xterm-а менее лишняя сущность нежели окно мультиплексора?
Потому что два окна - это будет xterm+xterm. А с мультиплексором это будет screen+xterm+xterm.
В виртуальной консоли screen, вероятно, полезен для многооконности, а вот в иксах это действительно лишняя сущность.

QWERTYASDF писал(а):
10.08.2015 20:24
Ну, например я сравниваю те-же конфиги. Мне лично удобнее набрать screen/tmux и щелкнуть комбинацию создания разделенных окон, чем открывать еще один xterm, выравнивать до нужных размеров, потом соотносить два окна xterm соответствующим образом.
Если говорить конкретно о сравнении файлов, то так вообще лучше не делать. Гораздо продуктивнее использовать diff (для параллельного просмотра diff -y) или, скажем, vim в режиме разделения окна.

QWERTYASDF писал(а):
10.08.2015 20:24
Понимаю, что можно попытаться настроить автоматическое позиционирование и размеры этих окона в wm.
Некоторые wm это делают автоматически. Awesome умеет точно, ну и другие тайловые wm, наверно, тоже.

QWERTYASDF писал(а):
10.08.2015 20:24
вариант с мультиплексером универсальнее - и для иксов и для виртуальной консоли
это, конечно, плюс, но запускать в иксах мультиплексор - это всё равно, что ставить Linux ради запуска виндовых программ в wine.

QWERTYASDF писал(а):
10.08.2015 20:24
Ну и да, такая возможность как отсоединение от запущенного сеанса без его завершения с возможностью потом к нему присоединиться с локальной или с другой машины - тоже, хоть пока мною не используется, но очень в перспективе интересует и в самом ближайшем будущем скорей всего будет использоваться (rtorrent запускать в фоне)
А вот здесь могу сказать совершенно точно: screen категорически не советую для этой задачи. Плавали, знаем.
Разъясняю.

Во-первых, screen управляется хоткеями в стиле emacs и они пересекаются с хоткеями других программ.
Поэтому в screen есть управляющая комбинация Ctrl+A, которая означает, что следующая за ней комбинация предназначена screen, а не другой программе. То есть вместо одного хоткея нужно нажимать два. Это неудобно само по себе, но в связке с rtorrent это особенно неудачно.
Дело в том, что отвязка от сессии в screen происходит по Ctrl+D. Следовательно, нужно нажать Ctrl+A, Ctrl+D.
И если забыть нажать Ctrl+A (а такое бывает), то Crtl+D будет адресована не screen, а rtorrent и может привести к удалению выделенного торрента. Пример совсем не надуманный, у меня такое бывало.
Во-вторых, screen взял моду терять связь с сессией. Запускаешь rtorrent, отвязываешься, а назад прицепиться уже не получается.
Не знаю, что это был за глюк, но порядком надоел. В итоге я отказался от использования screen в пользу dtach, который для связки с rtorrent гораздо комфортнее во всех отношениях.

Если же говорить о screen vs tmux, я бы попытал счастья с tmux, потому что я его ещё не пробовал, а screen меня уже разочаровал.


P.S. А для виртуальных консолей есть такая штука как byobu. Огранизует нечто вроде оболочки в виртуальной консоли - меню, статусная строка...
Прикольная штука. Я её даже пользовал одно время.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:

QWERTYASDF
Сообщения: 924
Статус: Чайник со свистком
ОС: GNU/Linux

Re: Запуск скрипта в фоновом режиме

Сообщение QWERTYASDF » 10.08.2015 22:41

Hephaestus

Ну мне хочется использовать именно мультиплексор. Мне кажется, что это как-то более "тру" что-ли, и удобнее лично для меня. Что там за "лишние сущности" появляются из-за чуть большего количества процессов и чем они мешают - по прежнему не понятно. Как мне кажется - мне ничем не мешают.

Некоторое время назад хотела начать пользоваться тайловым менеджером, а конкретно xmonad. Но не смогла понять что там вообще происходит, хоть и были готовые конфиги. В общем нет у меня на это сейчас времени и сил. И настолько меня xmonad отвратил от попыток быстрого внедрения в работу с таким менеджером, что нет желания разбираться и в типа более простых. Да и вообще надо ли? Fluxbox меня своей простотой и легкостью устраивает. Сделать несколько полноэкранных окошек с xterm, в которых уже все поразбивать на окна мультиплексора.

Вообщем, нету в screen вертикальной разбивки экрана, да? : )
Спасибо сказали:

Аватара пользователя
Hephaestus
Сообщения: 2573
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: Запуск скрипта в фоновом режиме

Сообщение Hephaestus » 10.08.2015 22:49

QWERTYASDF писал(а):
10.08.2015 22:41
Ну мне хочется использовать именно мультиплексор. Мне кажется, что это как-то более "тру" что-ли, и удобнее лично для меня.
Не имею ничего против. Однако связка screen+rtorrent всё-таки не самый удачный вариант. О возможных проблемах/неудобствах я уже сказал. На мой взгляд dtach гораздо комфортнее и устойчивее. Но это касается rtorrent, в остальном - смотрите сами.

QWERTYASDF писал(а):
10.08.2015 22:41
Вообщем, нету в screen вертикальной разбивки экрана, да? : )
Да вроде что-то такое было. Но точно не помню, ни разу не пригодилась.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:

QWERTYASDF
Сообщения: 924
Статус: Чайник со свистком
ОС: GNU/Linux

Re: Запуск скрипта в фоновом режиме

Сообщение QWERTYASDF » 10.08.2015 22:54

Hephaestus писал(а):
10.08.2015 22:49
QWERTYASDF писал(а):
10.08.2015 22:41
Ну мне хочется использовать именно мультиплексор. Мне кажется, что это как-то более "тру" что-ли, и удобнее лично для меня.
Не имею ничего против. Однако связка screen+rtorrent всё-таки не самый удачный вариант. О возможных проблемах/неудобствах я уже сказал. На мой взгляд dtach гораздо комфортнее и устойчивее. Но это касается rtorrent, в остальном - смотрите сами.

QWERTYASDF писал(а):
10.08.2015 22:41
Вообщем, нету в screen вертикальной разбивки экрана, да? : )
Да вроде что-то такое было. Но точно не помню, ни разу не пригодилась.


Спасибо за наводку касательно dtach. Почитаю, что это такое.

Было?? Я вот ни в мане ни в разных статьях про screen описания такой возможности не нашла. Может конечно у меня подход/задача не правильная, но кажется очень актуальной функцией.
Спасибо сказали:

Аватара пользователя
/dev/random
Администратор
Сообщения: 4866
ОС: Gentoo

Re: Запуск скрипта в фоновом режиме

Сообщение /dev/random » 11.08.2015 01:40

QWERTYASDF писал(а):
10.08.2015 22:54
Было?? Я вот ни в мане ни в разных статьях про screen описания такой возможности не нашла. Может конечно у меня подход/задача не правильная, но кажется очень актуальной функцией.

Было. "split -v". В официальную версию вошло год-полтора назад, но во многих дистрибутивных сборках было уже очень и очень давно.
Спасибо сказали:

QWERTYASDF
Сообщения: 924
Статус: Чайник со свистком
ОС: GNU/Linux

Re: Запуск скрипта в фоновом режиме

Сообщение QWERTYASDF » 11.08.2015 02:32

/dev/random писал(а):
11.08.2015 01:40
QWERTYASDF писал(а):
10.08.2015 22:54
Было?? Я вот ни в мане ни в разных статьях про screen описания такой возможности не нашла. Может конечно у меня подход/задача не правильная, но кажется очень актуальной функцией.

Было. "split -v". В официальную версию вошло год-полтора назад, но во многих дистрибутивных сборках было уже очень и очень давно.


Я наверное почти сплю, а может и не от этого - но не поняла где это печатать : )

***

А вообще я тут подумала исходя в т.ч. из постов выше - может попробую еще попытать счастья с тайловым wm. Посему приглашаю всех сюда : )
Спасибо сказали:

Аватара пользователя
/dev/random
Администратор
Сообщения: 4866
ОС: Gentoo

Re: Запуск скрипта в фоновом режиме

Сообщение /dev/random » 11.08.2015 02:37

QWERTYASDF писал(а):
11.08.2015 02:32
Я наверное почти сплю, а может и не от этого - но не поняла где это печатать : )

"<Ctrl-A>:split -v<Enter>"
ЕМНИП, дефолтная горячая клавиша, на которой висит эта команда - "<Ctrl-A>|"
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 15750
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Запуск скрипта в фоновом режиме

Сообщение Bizdelnick » 11.08.2015 08:56

QWERTYASDF писал(а):
10.08.2015 20:24
Почему лишние сущности? По крайней мере чем открытие еще одного окна xterm-а менее лишняя сущность нежели окно мультиплексора?

Потому что добавляется ещё одна программа для создания окон и управления ими, когда уже есть WM.

QWERTYASDF писал(а):
10.08.2015 20:24
Мне лично удобнее набрать screen/tmux и щелкнуть комбинацию создания разделенных окон, чем открывать еще один xterm, выравнивать до нужных размеров, потом соотносить два окна xterm соответствующим образом. Понимаю, что можно попытаться настроить автоматическое позиционирование и размеры этих окона в wm. Но во первых для меня пока что это оказалость слишком сложно, а во вторых вариант с мультиплексером универсальнее - и для иксов и для виртуальной консоли.

А может, просто WM у Вас неудобный?
Что касается виртуальной консоли — да, конечно, тут без чего-то типа screen не обойтись, но какой вообще смысл в этой виртуальной консоли сидеть?

QWERTYASDF писал(а):
10.08.2015 20:24
rtorrent запускать в фоне

Почему не использовать нормальный торрент-клиент, умеющий работать в режиме демона без костылей?
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
нюанс
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

Аватара пользователя
Hephaestus
Сообщения: 2573
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: Запуск скрипта в фоновом режиме

Сообщение Hephaestus » 11.08.2015 10:16

Bizdelnick писал(а):
11.08.2015 08:56
Почему не использовать нормальный торрент-клиент, умеющий работать в режиме демона без костылей?
Какой, например? Transmission? С ним не всё нормально. У него проблемы совместимости с некоторыми трекерами.
А вообще, я пробовал разные клиенты, ничего лучше rtorrent так и не нашлось, несмотря на некоторые его недостатки.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:

Аватара пользователя
/dev/random
Администратор
Сообщения: 4866
ОС: Gentoo

Re: Запуск скрипта в фоновом режиме

Сообщение /dev/random » 11.08.2015 10:19

Hephaestus писал(а):
11.08.2015 10:16
У него проблемы совместимости с некоторыми трекерами.

Например?
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 15750
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Запуск скрипта в фоновом режиме

Сообщение Bizdelnick » 11.08.2015 10:28

Hephaestus писал(а):
11.08.2015 10:16
У него проблемы совместимости с некоторыми трекерами.

УМВР, ЧЯДНТ?
Нет, он у меня не демоном, потому что не вижу особой необходимости, но проблем не замечал очень давно. В какой-то версии не работали то ли DHT, то ли magnet-ссылки, но с тех пор прошло много лет, и больше ни с одной проблемой я не сталкивался.
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
нюанс
приемлемо
проблема
пробовать
трафик
Спасибо сказали: