30 авг. 2011 г.

всегда у руля ...

Цель: авто- приаттачивание к screen'у при заходе по ssh при наличии сессий screen'а или авто- создание таковой ....
Решение: решения два ...

  1. это прописать ручками команду, для последующего выполнения при залогивании:

    - в putty, в настройках [Connection/SSH], в поле Remote command:
    SD=$(screen -ls|egrep -im 1 "Detached|Attached" |egrep -o "[0-9]+\.pts[^[:space:]]+"); if [ ! -z $SID ]; then screen -rd $SID; else screen; fi; bash;

    - или же
    ssh -t login@hostname 'SD=$(screen -ls|egrep -im 1 "Detached|Attached" | egrep -o "[0-9]+\.pts[^[:space:]]+"); if [ ! -z $SID ]; then screen -rd $SID; else screen; fi; bash;'

  2. это жестко прописать в ~/.bashrc (или ~/.bash_profile)
    case $TERM in
            screen)
                    return;
            ;;
            *)
                    if [ -z $STOPAUTOSCREEN ]; then
                            SID=$(screen -ls|egrep -im 1 'Detached|Attached' | egrep -o '[0-9]+\.pts[^[:space:]]+');
                            if [ ! -z $SID ]; then
                                    screen -rd $SID;
                            else
                                    screen;
                            fi;
                            STOPAUTOSCREEN=1;
                            export STOPAUTOSCREEN;
                    else
                            return;
                    fi;
            ;;
    esac
    

Примечание: аттачится к первому из активных ...

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

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