Сайт | Скачать | Видео | Wiki

Автор Тема: UpNet-0.3  (Прочитано 39390 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: UpNet-0.3
« Ответ #45 : 24 Август 2021, 20:07:08 »
Линукс - многопользовательская ОС )).

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5339
  • Репутация: +139/-1
Re: UpNet-0.3
« Ответ #46 : 24 Август 2021, 20:11:30 »
Т.е. если в системе добавлены два пользователя, например live и user, а зашел я под user, то команда выше покажет и live и user? Тогда понятно.
« Последнее редактирование: 24 Август 2021, 20:13:01 от krasnyh »

Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: UpNet-0.3
« Ответ #47 : 24 Август 2021, 20:46:11 »
Команда покажет юзера от которого запущена.

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5339
  • Репутация: +139/-1
Re: UpNet-0.3
« Ответ #48 : 24 Август 2021, 21:04:56 »
Проверил на примере MagOS.iso. Грузится с user, команда выше показала user. Вышел из сеанса, зашел под root, команда показала root.

Если это не пример "многопользовательского линукса", тогда не знаю... )


upd. Наверно root не считается.

Оффлайн DdShurick

  • Это Риччи
  • Модератор
  • Ветеран
  • ****
  • Сообщений: 8636
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: UpNet-0.3
« Ответ #49 : 24 Август 2021, 21:05:04 »
Создал второго пользователя user. Показывает live и user. В моём скрипте до первого совпадения, выходит "кто успел, тот и съел". Лажа ;(
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: UpNet-0.3
« Ответ #50 : 24 Август 2021, 21:24:51 »
Это совсем не пример многопользовательского линукса. Юзеры могут быть залогинены одновременно. Например один в иксах второй по ssh. Или допустим у вас демон, выполняется под своим юзером и ему нужно узнать кто запустил иксы. Или например вы хотите чтоб запустилось пользовательское  gui приложение, когда вы вставили флешку. У udev есть права  чтоб запустить от юзера,  но он не в курсе от которого запускать. Короче id -un .вообще не вариант. Когда копал в этом направлении в некоторых версиях who можно было отличить юзера иксов, как сейчас с этим не знаю. С systemctl работает хорошо, но это только с системд и допущением, что seat0.  такого решения чтоб 100% не знаю, еще ж wayland есть )

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5339
  • Репутация: +139/-1
Re: UpNet-0.3
« Ответ #51 : 24 Август 2021, 21:38:48 »
Наверно из сборок форума только MagOS подходит для проверки многопользовательского режима. )

Зашел, создал помимо user еще и ice через гуи. Команда id отработала при выходе из сеанса и смене пользователя, показав для первого сеанса user, для второго ice.


Но конечно, ситуации описанные комментом выше, за гранью...  :)

Оффлайн DdShurick

  • Это Риччи
  • Модератор
  • Ветеран
  • ****
  • Сообщений: 8636
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: UpNet-0.3
« Ответ #52 : 24 Август 2021, 22:07:50 »
Код
bash-4.4$ ps|awk '/wm$/ {print $2}'
live
Получаем пользователя WM.
В моём скрипте пользователь не нужен, нужен pid WM, тогда
Код
PID=$(ps | awk '/wm$/ {print $1}')
[ -z "$PID" ] && continue
Трудно быть бестолковым. Очень трудно :(
trayNetUp:
Код
#!/bin/sh
##trayNetUp управление отображением сетевых интерфейсов в трее. DdShurick GPL-v2. 24.08.2021

while true
do
sleep 5
PID=$(ps | awk '/wm$/ {print $1}')
[ -z "$PID" ] && continue
[ -z "$DISPLAY" ] && export $(grep DISPLAY /proc/$PID/environ)

ls -1 /sys/class/net | grep -v lo | while read IFACE
do
if [ "$(grep -q  down /sys/class/net/$IFACE/operstate)" ]; then
[ -f /var/run/${IFACE}.pid ] && rm /var/run/${IFACE}.pid
continue
fi
[ -f /var/run/${IFACE}.pid ] && pidof trayNet | grep -q "$(cat /var/run/${IFACE}.pid)" && continue
trayNet "$IFACE" &
echo $! > /var/run/${IFACE}.pid
done
[ "$(grep -q up /sys/class/net/*/operstate)" -o "$(pidof trayNet)" ] || trayNet none
done
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн DdShurick

  • Это Риччи
  • Модератор
  • Ветеран
  • ****
  • Сообщений: 8636
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: UpNet-0.3
« Ответ #53 : 24 Август 2021, 22:12:22 »
У udev есть права  чтоб запустить от юзера,  но он не в курсе от которого запускать.
Не совсем так, udev не знает $DISPLAY, это основная причина.
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5339
  • Репутация: +139/-1
Re: UpNet-0.3
« Ответ #54 : 24 Август 2021, 22:15:07 »
 :)

У меня определяется скриптом sfsusr.
Код
 % cat =sfsusr

#!/bin/ash
#190619
# X user detect
for i in jwm openbox metacity xfce4-session enlightenment marco twin icewm-session ;do
    #echo $i
    wm="`pidof $i`"
    [ "$wm" = "" ] || u=`ps axu |awk '$2 ~ /^'$wm'$/ {print $1}'`
done
echo $u

Оффлайн DdShurick

  • Это Риччи
  • Модератор
  • Ветеран
  • ****
  • Сообщений: 8636
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: UpNet-0.3
« Ответ #55 : 25 Август 2021, 08:09:51 »
скриптом sfsusr.
Можно и так, но зачем затевать цикл, когда можно "jwm openbox metacity xfce4-session enlightenment marco twin icewm-session" сразу в awk
Код
bash-4.4# ps | awk '/jwm$|openbox$|metacity$|xfce4-session$|enlightenment$|marco$|twin$|icewm-session$/ {print $1" "$2}'
872 live
(у меня busybox ps, поэтому без ключей.)
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33996
  • Репутация: +231/-0
    • PuppyRus-A
Re: UpNet-0.3
« Ответ #56 : 25 Август 2021, 10:40:14 »
сразу в awk
Стремно. Можно не того нафильтровать. Как у меня - через пид надежнее
openbox$ - $ не прокатит.  Как правило вм запускается с параметрами

Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: UpNet-0.3
« Ответ #57 : 25 Август 2021, 10:42:48 »
Не совсем так, udev не знает $DISPLAY, это основная причина.
Да DISPLAY и еще где файл с Xauthority не знает, но я не об этом. Запустить от юзера и вывести на экран не одно и тоже.

Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: UpNet-0.3
« Ответ #58 : 25 Август 2021, 10:50:09 »
bash-4.4# ps | awk '/jwm$|openbox$|metacity$|xfce4-session$|enlightenment$|marco$|twin$|icewm-session$/ {print $1" "$2}'
872 live
Добавил i3$, в магос сработало

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33996
  • Репутация: +231/-0
    • PuppyRus-A
Re: UpNet-0.3
« Ответ #59 : 25 Август 2021, 10:51:59 »
В моем (sfsusr) случае, наверное можно упростить получение юзера ВМ до
Код
basename "`dirname "$XAUTORITY"`"