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