Как правильно завершить другую сессию?

1

Я администратор на общем MacOS X: Big_serverработает Yosemite. Версия MacOS не является ключевой информацией: у меня была такая же проблема во всех версиях MacOS.

Но сегодня у меня есть практический пример и время для анализа и тестирования решений. Big_serverразмещает профессиональные сервисы (брандмауэр и почтовый сервер) и не может быть перезагружен для игры.

У меня есть другой пользователь, bobкоторый оставил свой сеанс открытым. Он забыл закрыть его и находится в отпуске много недель. Следовательно, консоль заблокирована в ожидании своего пароля. Я знаю, как убить bobсессию, как свинья.

Тем не менее, я заметил, что у этого коллеги запущено более 50 процессов, некоторые из них заканчиваются на:

...Support/photolibraryd
.../com.apple.CloudPhotosConfiguration
...

и я хотел бы избежать повреждения любой из его библиотек или файлов, которые могли остаться открытыми.

Как я могу завершить bobсессию без ущерба для его данных?

Дан
источник

Ответы:

2

Пользователь Боба может отправить сигнал Kill всем своим процессам.

sudo su - bob
kill -9 -1

Это оставляет все процессы, отличные от Bob, работающими и отправляет немаскируемый SIGKILL всем процессам с этим UID. На более новой ОС некоторые процессы будут возрождаться, как использует Боб, но вы на мгновение очистите их, и старый сеанс пропадет.

bmike
источник
Хороший метод старой школы 😉. Почему не а kill -1 -1?
дан
Вы также можете убить процесс loginwindow пользователя. Нет причин для. Чтобы использовать другой сигнал, -9 мне кажется «плохим», поэтому я выбрал его. «Убить, убить» работает для меня @dan
bmike