Вопрос про loginctl

Нужна помощь гуру. Не убивается сессия обычного пользователя. Пользователь залогинен на tty1 и tty2. root залогинился на tty3, root пытается убить сессию пользователя на tty2 (sesion 3)
[root@server systemdx-lib]# loginctl --version
systemd 208
+PAM -LIBWRAP -AUDIT -SELINUX -IMA -SYSVINIT +LIBCRYPTSETUP +GCRYPT +ACL +XZ
[root@server systemdx-lib]# whoami
root
[root@server systemdx-lib]# loginctl list-sessions
   SESSION        UID USER             SEAT
         1       1000 user             seat0
         3       1000 user             seat0
2 sessions listed.
[root@server systemdx-lib]# loginctl session-status --full --no-pager 3
3 - user (1000)
	   Since: Вс 2014-01-26 22:27:21 NOVT; 2h 8min ago
	  Leader: 501 (login)
	    Seat: seat0; vc2
	     TTY: tty2
	 Service: login; type tty; class user
	   State: online
	    Unit: session-3.scope
[root@server systemdx-lib]# loginctl terminate-session 3
[root@server systemdx-lib]# loginctl kill-session 3
Failed to issue method call: Input/output error
[root@server systemdx-lib]# loginctl list-sessions
   SESSION        UID USER             SEAT
         1       1000 user             seat0
         3       1000 user             seat0
2 sessions listed.
[root@server systemdx-lib]#
Ваши комментарии?
Я не гуру, я чайник, но могу предположить, что в tty2 ты не сделал exit , в предположении, что больше ничего не напортачил.
PS...или я что то неправильно понял - не пинай сильно - дошло, что не мог ты не запустить exit - значит, возможно, это глюк
Демонстрирую ситуацию
1. $ loginctl list-sessions
SESSION UID USER SEAT
1 1000 vasek seat0
4 1000 vasek seat0

Дальше лучше использовать другую (в отличии указанной тобой) команду, будет видно, что у тебя в session-4 — у меня только логин и баш, ничего не запускал)
$ loginctl user-status vasek
vasek (1000)
Since: Вс 2014-01-26 17:42:32 GMT; 5h 18min ago
State: active
Sessions: 4 1
Unit: user-1000.slice
├─session-4.scope //PS....или у тебя висит в этой сессии запущенный какой то юнит или что другое
│ ├─4437 login -- vasek
│ └─4466 -bash
├─session-1.scope
│ ├─ 287 login -- vasek
│ ├─ 300 -bash
│ ├─ 306 /bin/sh /usr/bin/startx

2.Далее в tty2 - $ exit и переходим в tty1 — и убеждаемся, что все нормально
$ loginctl list-sessions
SESSION UID USER SEAT
1 1000 vasek seat0

$ loginctl user-status vasek
vasek (1000)
Since: Вс 2014-01-26 17:42:32 GMT; 5h 26min ago
State: active
Sessions: 1
Unit: user-1000.slice
├─session-1.scope
│ ├─ 287 login -- vasek
│ ├─ 300 -bash
│ ├─ 306 /bin/sh /usr/bin/startx

PS.....Ради эксперимента попытался убить сессию теми же командами, что и ты - получил те же ошибки
Ошибки не исчезают с опытом - они просто умнеют
to vasek

Вы немного неправильно поняли - я убиваю сессию пользователя находясь на другой tty и залогинившись под рутом.
Т.е. картина такова:
tty1, tty2 - сессии юзера
пусть будет tty3 - сессия рута, с этой же сессии пытаемся убить сессию пользователя на tty2

(подправил первый пост для большей ясности)
PS.....Ради эксперимента попытался убить сессию теми же командами, что и ты - получил те же ошибки
Или из под рута нельзя убить сессию пользователя?
Понял. Попробуй все-таки другую команду, типа $ loginctl user-status vasek - и посмотри, что осталось в сессии - должно быть только логин и баш.
Ошибки не исчезают с опытом - они просто умнеют
Я вообще не пойму - зачем таким способом убивать сессию пользователя.
Никогда такие эксперименты не ставил.
Ошибки не исчезают с опытом - они просто умнеют
ну раз systemd предлагает такой механизм, значит он кому-то нужен и лично мне интересно как он работает
man loginctl:
terminate-session [ID...]
Terminates a session. This kills all processes of the session and
deallocates all resources attached to the session.
Эксперементирую
на tty2 снова логинимся под пользователем (systemd назначает сессии номер 10) и запускаем утилиту top
на tty3 (под рутом):
[root@server user]# loginctl session-status 10
10 - user (1000)
           Since: Пн 2014-01-27 03:05:42 NOVT; 4min 14s ago
          Leader: 7054 (login)
            Seat: seat0; vc2
             TTY: tty2
         Service: login; type tty; class user
           State: online
            Unit: session-10.scope
                  ├─7054 login -- user
                  ├─7056 -bash
                  └─7098 top
top виден, пытаемся выполнить terminate:
[root@server user]# loginctl terminate-session 10
[root@server user]# loginctl session-status 10
10 - user (1000)
           Since: Пн 2014-01-27 03:05:42 NOVT; 5min ago
          Leader: 7054 (login)
            Seat: seat0; vc2
             TTY: tty2
         Service: login; type tty; class user
           State: online
            Unit: session-10.scope
top из списка пропал. Однако, на tty2 как работал top, так и работает. Перезапускаю "top" и снова иду на tty3
[root@server user]# loginctl session-status 10
10 - user (1000)
           Since: Пн 2014-01-27 03:05:42 NOVT; 7min ago
          Leader: 7054 (login)
            Seat: seat0; vc2
             TTY: tty2
         Service: login; type tty; class user
           State: online
            Unit: session-10.scope
[root@server user]#
[root@server user]# ps -A | grep top
 7124 tty2     00:00:01 top
[root@server user]#
id процесса изменился, но loginctl session-status его уже не видит. Это как???
С kill-session та же картина - top как работал, так и работает
А нужно именно идеологически выдержанное решение?
sudo systemctl restart getty@tty2
Выбросит любого пользователя, даже рута, с tty2.
to naszar:
Ну вопрос-то про loginctl
 
Зарегистрироваться или войдите чтобы оставить сообщение.