У меня есть собственный сценарий оболочки, который запускается каждый раз, когда пользователь входит в систему или предполагается, что он идентифицирован, помещается в /etc/profile.d и выполняет некоторые основные операции с переменными env. Недавно я добавил некоторый код, так что если экран запущен, он будет подключен без необходимости что-либо печатать. Однако есть некоторые проблемы. Если я вхожу в систему как root, а su - другому пользователю, код запускается второй раз. Есть ли переменная, которую я могу установить, когда код запускается в первый раз, чтобы предотвратить повторный запуск кода?
Я думал что-то записать на диск, но потом я не хочу препятствовать запуску кода, если я начну новый сеанс терминала. Вот код, о котором идет речь. Сначала он пытается подключиться снова - если он неуспешен, потому что он уже подключен (как это может быть в прерванном сеансе), он «заберет» сеанс обратно.
screen -r
if [ -z "$STY" ]; then
exec screen -dR
fi
В конечном счете, эта ошибка не позволяет мне подставить пользователя другому пользователю, потому что, как только я это сделаю, он захватывает сеанс экрана и возвращает меня туда, где я начал. Довольно разочаровывает