Назад | Перейти на главную страницу

Запустить демонизированный экран GNU из сценария, разрешить вызов сценарию завершить

У меня есть сценарий на встроенном устройстве, который вызывает экран для запуска, если пользователь входит в систему через сеанс ssh ...

#!/bin/sh

SCREENRUNNING=`pgrep SCREEN`

if [ -z "$SCREENRUNNING" ]; then

    echo "Screen not running so let's start the Master session
    sleep 2
    screen -dmS Master
        sleep 2
        screen -x root/Master


else

    echo "Screen is already running let's connect to existing session"

    sleep 2
    screen -x root/Master

fi

Однако при этом вызывающий скрипт остается активным до завершения сеанса экрана, даже если он отсоединен.

Я хочу, чтобы вызывающий сценарий завершился и завершился, пока сеанс экрана остается активным. Я пробовал демонизировать строки screen -x и добавить & в конец строк screen -x, ни одна из которых не работает должным образом.

Идеи?

Если вы не дадите сценарию завершиться и выйти, вы будете получать осиротевшие экземпляры каждый раз, когда вы входите на устройство заново, то есть каждый вход в систему генерирует экземпляр скрипта, который завершится только при полном выключении экрана.

Поскольку это встроенное устройство, nohup недоступен.

Попробуйте использовать nohup перед командой и &:

  nohup command &