#!/bin/sh
PW_PATH=/home
echo "Запуск скрипта"
// Ну тут что-то типа некого набора команд, которые проверяют работают ли сервер.
cd $PW_PATH; ./start_2.sh &
#!/bin/sh
PW_PATH=/home
.....
// Здесь... Опять код.
....
cd $PW_PATH; ./start.sh &
// И опять.. Возвращаемся в самое начало!
Просто получается так, что если закрыть консоль скрипт перестает выполнятся. Чего мне не надо...
Cron не подойдет. Автозапуск при загрузке системы тоже. Можно это как-нибудь организовать?
#!/bin/sh
PW_PATH=/home
echo "Запуск скрипта"
// Ну тут что-то типа некого набора команд, которые проверяют работают ли сервер.
cd $PW_PATH; ./start_2.sh &
#!/bin/sh
PW_PATH=/home
.....
// Здесь... Опять код.
....
cd $PW_PATH; ./start.sh &
// И опять.. Возвращаемся в самое начало!
Просто получается так, что если закрыть консоль скрипт перестает выполнятся. Чего мне не надо...
Cron не подойдет. Автозапуск при загрузке системы тоже. Можно это как-нибудь организовать?
shadow999, говорить о замене „целых программ“ одной командой, естественно, нельзя: и tmux, и GNU Screen созданы для решения других задач; прежде всего, для интерактивного использования… Это и продекларировано в man-страницах:
(man screen) писал(а):Screen is a full-screen window manager that multiplexes a physical terminal between several processes (typically interactive shells).
(man tmux) писал(а):tmux is a terminal multiplexer
А для конктретной озвученной задачи терминал-то и не нужен вовсе, соответственно, screen и tmux избыточны чуть менее чем полностью.
Вот теперь подскажите, если не трудно, как с ним работать.
man почитать не пробовали? (:
ctrl+b d - выйти, оставив tmux работать в фоне.
просто ctrl+d - выйти из tmux. он завершит текущий шелл и, если шелл был последний, сессию tmux'a.
а мудя по тому, что вы написали: ctrl+c - прервал ваш скрипт и ctrl+d - вышел из шелла и из сессии.
Это одна внутренняя команда заменяет целую программу!?.. Такую как tmux или GNU Screen.
Конечно, не заменяет. Она выполняет лишь одну, причём далеко не основную, из функций этих программ. Если Вам нужна _только_ эта функция, то disown -- идеальный вариант. А если, скажем, может понадобиться позже подключить отключенную сессию к другому терминалу и посмотреть результаты, тогда лучше screen (с tmux не работал, не знаю).
Вот теперь подскажите, если не трудно, как с ним работать.
man почитать не пробовали? (:
ctrl+b d - выйти, оставив tmux работать в фоне.
просто ctrl+d - выйти из tmux. он завершит текущий шелл и, если шелл был последний, сессию tmux'a.
а мудя по тому, что вы написали: ctrl+c - прервал ваш скрипт и ctrl+d - вышел из шелла и из сессии.
Я читал. Просто никак не получалось. Спасибо, разобрался. Оказывается надо было нажать сначала Ctrl+b, а затем только d. А я все три сразу тыкал... Так ну теперь то он нормально работает!?. Никак нельзя там проверить!? Продолжительность сессии или сами логи!?
А то у меня какие-то сомнения. Когда я опять открываю запущенную сессию:
Давно интересовался такой темой.
Сейчас попробовал nohup , отлично сработало, преимущество в том , что можно запускать через автозапуск KDE
Я использовал это для запуска скрипта сообщающего звуком о событии в логах (clam.d)
Используя nohup, важно не забывать о его основном предназначении: блокировании сигнала HUP для заданного процесса. Многие программы используют этот сигнал для принудительной реинициализации. В частности, многие демоны по этому сигналу перечитывают свою конфигурацию. Будучи запущенными с nohup такие программы теряют возможность такой реинициализации. Поэтому если цель -- отвязаться от терминала, -- то решение с disown более правильное. У меня в .bashrc (точнее, в .bash_aliases, вызываемом из .bashrc) есть такая функция (пишу по памяти):
Часто с удаленного сервера нужно подключиться к другому серверу. А я не большой любитель работать по ssh без скрина или тмакса (все-таки инет очень нестабильная штука: соединения иногда рвутся). Что-то только сейчас догадался скрин в тмаксе запустить.
в случае обрыва связи между local <--> host1 || host1 <--> host2 все запущенные программы и скрипты на host1 и host2 не убьются, а будут висеть, пока я снова к ним не подключусь.
у меня просто есть несколько узловых машин, с которых я подключаюсь на другие. поэтому у меня такая связка используется достаточно часто.
Часто с удаленного сервера нужно подключиться к другому серверу. А я не большой любитель работать по ssh без скрина или тмакса (все-таки инет очень нестабильная штука: соединения иногда рвутся). Что-то только сейчас догадался скрин в тмаксе запустить.
Если дело только в этом, то достаточно переназначить клавишу-префикс на узловых машинах -- и пускать screen в screen-е. Я бы в tmux-е всё равно переназначал, т.к. C-b, как по мне, совсем неудобная связка, особенно для префикса.
А про рвущиеся соединения я очень даже в курсе, у самого это одна из основных причин использования screen.
Отчего же? Еслиразные префиксы назначить, не запутаешься.
Другой вопрос, что переключаться не так удобно, как в одиночных сессиях. Потому я для параллельного выхода на несколько машин использую всё-таки отдельные окна терминала (или вкладки; или разные консоли), по одиночной сессии в каждой. Если нужно выйти "с сервера на сервер" (на самом деле всего пару раз такое было), то на промежуточном сервере всё-равно кроме ssh-клиента ничего не стартует, так что перезапустить недолго.
совершенно не запутываюсь при двух вложенных screen-ах без переназначения префикса (только автоматизм действий при этом приходится слегка усмирять, соответственно, работа чуть замедляется).
new-session [-d] [-n window-name] [-s session-name] [-t target-session] [command]
(alias: new)
Create a new session with name session-name. The new session is attached to the current terminal
unless -d is given. window-name and command are the name of and command to execute in the initial win‐
dow.
совершенно не запутываюсь при двух вложенных screen-ах без переназначения префикса (только автоматизм действий при этом приходится слегка усмирять, соответственно, работа чуть замедляется).
Признаться, не понял. Два вложенных screen-а с одинаковыми префиксами?.. Как же с ними вообще работать?
Добавлено: А, понял. Во внешнем префиксом выступает C-a a. Поскольку послендее время всё больше работаю за n810, где нет клавиши Home (да и некуда её назначить) и C-a a выступает именно в этой роли, то сразу как-то и не подумал в эту сторону. (:
1. Одновременное подключение нескольких клиентов к одной сессии
2. vi хоткеи (emacs тоже доступны)
3. Миграция окон между сессиями, благодаря, отмеченной вами клиент-серверной архитектуре.
4. Более удобный статус лайн.
5. Буфер обмена
1. Одновременное подключение нескольких клиентов к одной сессии
2. vi хоткеи (emacs тоже доступны)
3. Миграция окон между сессиями, благодаря, отмеченной вами клиент-серверной архитектуре.
4. Более удобный статус лайн.
5. Буфер обмена
Учитывая, что я не запускаю больше одной сессии на машине, и пользуюсь ими в одиночку, то пп. 1 и 3 мне не важны. Хоткеи vi и emacs тоже, на мой взгляд, совсем не идеальны (хотя emacs я использую). А статусную строку я не использую впринципе. Так что для меня актуален только последний пункт.
С другой стороны, у некоторых консольных программ есть интеграция со screen-ом, а с tmux-ом нет. Например, elinks (который я использую повседневно) умеет создавать для себя новое окно screen-а, чем я нередко пользуюсь.