commit 84d94c96892c1b5f61632a2dece5097364cb5cac Author: tigro Date: Mon Sep 2 10:40:09 2024 +0300 import session-monitor-0.1-1.el9 diff --git a/.session-monitor.metadata b/.session-monitor.metadata new file mode 100644 index 0000000..e69de29 diff --git a/SOURCES/session-monitor.service b/SOURCES/session-monitor.service new file mode 100644 index 0000000..135fcb9 --- /dev/null +++ b/SOURCES/session-monitor.service @@ -0,0 +1,9 @@ +[Unit] +Description=Monitor user sessions and lock screen on state change + +[Service] +ExecStart=/usr/bin/session-monitor +Restart=always + +[Install] +WantedBy=multi-user.target diff --git a/SOURCES/session-monitor.sh b/SOURCES/session-monitor.sh new file mode 100644 index 0000000..77e3d83 --- /dev/null +++ b/SOURCES/session-monitor.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +check_session_state() { + active_session=$(loginctl | grep "online" | awk '{print $1}') + + for session in $active_session; do + current_state=$(loginctl show-session $session -p Active --value) + + if [[ $current_state == "no" ]]; then + /usr/bin/loginctl lock-session $session + fi + done +} + +while true; do + check_session_state + sleep 1 +done diff --git a/SPECS/session-monitor.spec b/SPECS/session-monitor.spec new file mode 100644 index 0000000..93bd216 --- /dev/null +++ b/SPECS/session-monitor.spec @@ -0,0 +1,52 @@ +Summary: Monitor user sessions and lock screen on state change +Name: session-monitor +Version: 0.1 +Release: 1%{?dist} +License: GPLv2+ +URL: http://msvsphere-os.ru/ +Source0: session-monitor.sh +Source1: session-monitor.service + +BuildRequires: systemd-rpm-macros + +Requires(post): systemd +Requires(post): systemd-sysv +Requires(preun): systemd +Requires(posttrans): systemd + +%description +Monitor user sessions and lock screen on state change. Useful if screen was +changed. + +%prep + +%build + +%install +mkdir -p %{buildroot}%{_bindir} +mkdir -p %{buildroot}%{_unitdir} + +install -m 755 %{SOURCE0} %{buildroot}%{_bindir}/%{name} +install -m 644 %{SOURCE1} %{buildroot}%{_unitdir} + +%post +%systemd_post %{name}.service +/usr/bin/systemctl enable --now %{name}.service ||: + +%preun +%systemd_preun %{name}.service +/usr/bin/systemctl stop %{name}.service ||: + +%postun +%systemd_postun_with_restart %{name}.service + +%files +%{_bindir}/%{name} +%{_unitdir}/%{name}.service + +%changelog +* Mon Sep 02 2024 Arkady L. Shane - 0.1-1 +- Rebuilt for MSVSphere 9.4 + +* Wed Aug 07 2024 Arkady L. Shane - 0.1-1 +- Initial build