From e4d6fe0018945aae9215c27a479108a1bd1c86ed Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Mon, 15 Mar 2010 10:46:12 -0700 Subject: Force user to be logged out Bug 5067 Need to force user off with SIGHUP/SIGKILL. Shells started from telnet ignore SIGTERM. --- lib/Vyatta/Login/User.pm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/Vyatta/Login/User.pm b/lib/Vyatta/Login/User.pm index e4909b9a..afc3cf53 100755 --- a/lib/Vyatta/Login/User.pm +++ b/lib/Vyatta/Login/User.pm @@ -109,8 +109,11 @@ sub _delete_user { } elsif ( getlogin() eq $user ) { die "Attempting to delete current user: $user\n"; } else { - # This logs out user (so we can delete it) - system("pkill -u $user"); + if (`who | grep "^$user"` ne '') { + warn "$user is logged in, forcing logout\n"; + system("pkill -HUP -u $user"); + } + system("pkill -9 -u $user"); system("userdel $user") == 0 or die "userdel of $user failed: $?\n"; -- cgit v1.2.3