Проверить, работает ли в реальном времени сеанс или нет внутри сценария оболочки

У меня есть сценарий оболочки, который можно запускать только из живого сеанса (LiveCD или Live USB), потому что он сокращает корневую файловую систему фактической установки, что может быть сделано только тогда, когда файловая система не установлена.

Если сценарий запускается из текущего сеанса, он должен продолжить выполнение.

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

Есть ли способ идентификации это в командной строке сценария / командной строки?

(я колебался между публикацией в Ask Ubuntu или Stack Overflow, я могу удалить пост и повторно отправить на Stack Overflow, если это более подходит)

1
задан 2 April 2014 в 23:21

1 ответ

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

Итак, не было бы gid больше, чем 999 в /etc/passwd, соответствует любому реальному пользователю, кроме nobody пользователя.

$ awk -F: '($3>=1000){print $1}' /etc/passwd
nobody

Следующий скрипт должен работать ,

#!/bin/bash

var=$(awk -F: '($3>=1000){print $1}' /etc/passwd | wc -l)
if [[ $var -gt 1 ]]; then
    echo "normal session"
else
    echo "live session"
fi
2
ответ дан 24 May 2018 в 10:09
  • 1
    Это решение работает хорошо, спасибо. Однако, поскольку мой сценарий имеет дело с разделами и файловыми системами, я решил, что решение @ terdon должно быть последовательным. Если сценарий должен когда-нибудь измениться из-за этого теста, тогда есть хороший шанс, что остальная часть скрипта сама по себе должна быть обновлена ​​сама по себе. – astorije 2 April 2014 в 22:43

Другие вопросы по тегам:

Похожие вопросы: