среда, 14 октября 2015 г.

screen: несколько примеров

Что делать, когда нужно выполнить несколько команд?
Раньше была опция -t (она есть и сейчас, "заголовок сессии", но работала чуть иначе), в более поздних системах -d -m -S
-d -m это старт в "detached" режиме, то есть без подключения к консоли, например в стартап скриптах
-S задаёт имя сессии, показывается через screen -list
пример:
screen -d -m -S test /some/script
после завершения скрипта скрин закроется.



вариант чуть посложнее
screen -d -m -S test2 sh -c "echo 1; echo 2; exec /bin/bash"
будет создана сессия test2, к ней можно подключиться через screen -R test2, там будет выведено 1 2 и запущен шелл.

Ещё вариант описан тут
http://unix.stackexchange.com/questions/162133/run-script-in-a-screen
#!/bin/sh
if [ -z "$STY" ]; then exec screen -dm -S screenName /bin/bash "$0"; fi
do_stuff
more_stuff

или так
#!/bin/bash
for i in 1 2 3
do
    test="test"$i
    screen -dmS $test ./my_command $i
done
http://unix.stackexchange.com/questions/104401/screen-in-bash-script

Если надо что-то передать в скрин без подключения к нему, можно попробовать так
screen -r -S "<screenName>" "command/or/script/to/execute"
(не проверялось)

Комментариев нет:

Отправить комментарий