You are not logged in.
Pages: 1
The home directories on my system are on NFS.
Most of the times, when users log out of their graphical session, some of their processes keep running (for instance /usr/bin/nepomukserver for KDE users and some processes related to pulse or to chromium).
When shutting down the system, arch scripts first try unmounting network filesystems, and this fails, since /home is busy; then they send a SIGTERM to processes, and this fails as well (I believe it's because the network has been halted but /home hasn't been mounted), then the system hangs while unmounting non-API filesystems.
If, before shutting down, I manually kill the user processes (nepomukserver, pulse, chromium, ...), arch is able to shutdown as expected.
Am I the only one affected by this problem?
How am I supposed to solve it?
I'm thinking about writing a script to terminate (`kill` and then `kill -9`) any process using /home (`lsof /home`), but this looks like a terrible hack...
Offline
So, since I couldn't find any other solution, decided to write a script (an init script to add to the DAEMONS array) that kills the processes using /home while halting the machine...
If anybody will ever need it, here it is:
/etc/rc.d/pathliberator
#!/bin/bash
# Path Liberator
# kills processes that are using a given path
DAEMON=pathliberator
. /etc/rc.conf
. /etc/rc.d/functions
[ -r /etc/conf.d/$DAEMON ] && . /etc/conf.d/$DAEMON
case "$1" in
start)
stat_busy "Starting path liberator"
add_daemon $DAEMON
stat_done
;;
stop)
success=true
for path in ${PATHS_TO_LIBERATE[@]}
do
pids=$( lsof -Fp $path | sed -rs "s/^.(.*)$/\1/g" )
if [ "$pids" == "" ]
then
status "$path was already free" true
continue
fi
# kill -TERM
stat_busy "Liberating $path"
kill -15 ${pids[@]} &>/dev/null
pids=$( lsof -Fp $path | sed -rs "s/^.(.*)$/\1/g" )
if [ "$pids" == "" ]; then
stat_done
continue
fi
stat_fail
pids=$( lsof -Fp $path | sed -rs "s/^.(.*)$/\1/g" )
# kill -KILL
stat_busy "Liberating $path with SIGKILL"
kill -9 ${pids[@]} &>/dev/null
pids=$( lsof -Fp $path | sed -rs "s/^.(.*)$/\1/g" )
if [ "$pids" == "" ]; then
stat_done
continue
fi
stat_fail
success=false
done
status "Paths liberated" $success
if [ $success ]
then
rm_daemon $DAEMON
fi
;;
restart)
$0 stop
$0 start
;;
*)
echo "usage: $0 {start|stop|restart}"
esac
exit 0
/etc/conf.d/pathliberator
#
# Parameters to be passed to pathliberator
#
PATHS_TO_LIBERATE=(/home/)
It seems to be working, although didn't deeply test it...
My DAEMONS array now looks like this:
DAEMONS=(hwclock syslog-ng cpufreq network crond nscd dbus rpcbind nfs-common netfs pathliberator gpm sshd @ntpdate alsa fuse gdm avahi-daemon)
Last edited by peoro (2012-06-13 11:23:17)
Offline
I thought that using hwclock with ntp was problematic? I mention this partly because another thread about what maybe a similar issue includes comments from people who are also experiencing clock issues.
CLI Paste | How To Ask Questions
Arch Linux | x86_64 | GPT | EFI boot | refind | stub loader | systemd | LVM2 on LUKS
Lenovo x270 | Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz | Intel Wireless 8265/8275 | US keyboard w/ Euro | 512G NVMe INTEL SSDPEKKF512G7L
Offline
Uh, thank you for pointing that out, fixed my DAEMONS array.
Anyway that didn't have much to do with the problem I was having at shutdown.
Offline
I thought that using hwclock with ntp was problematic? I mention this partly because another thread about what maybe a similar issue includes comments from people who are also experiencing clock issues.
Interesting... thank you, cfr.
I had mistakenly assumed that I had fixed my hwclock configs once upon a time (many months ago) and since forgot about it. I just checked my DAEMONs array and hwclock is most definitely not present but ntpd is. I don't remember ever changing that.
Now you have me worried that I'm losing my mind. Did I read something in the Wiki about not running hwclock and ntpd only to forget what I read? Is this early onset Alzheimer's?
He who has no .plan has small finger.
~Confucius on UNIX.
Offline
Thank you very much, peoro, you've helped me very much. I needed exactly that.
Offline
Pages: 1