Make sure signal used by 'dnotify' is not blocked. Some desktop environments block all realtime signals and they remain blocked for all child processes. So if you run rpc.gssd from a terminal window, the signal it used for dnotify is blocked and never deliverred. So it doesn't work. So we unblock that signal. bnc#406832 Signed-off-by: NeilBrown Index: nfs-utils-1.1.3/utils/gssd/gssd_main_loop.c =================================================================== --- nfs-utils-1.1.3.orig/utils/gssd/gssd_main_loop.c +++ nfs-utils-1.1.3/utils/gssd/gssd_main_loop.c @@ -99,6 +99,7 @@ gssd_run() int ret; struct sigaction dn_act; int fd; + sigset_t set; /* Taken from linux/Documentation/dnotify.txt: */ dn_act.sa_sigaction = dir_notify_handler; @@ -106,6 +107,11 @@ gssd_run() dn_act.sa_flags = SA_SIGINFO; sigaction(DNOTIFY_SIGNAL, &dn_act, NULL); + /* just in case the signal is blocked... */ + sigemptyset(&set); + sigaddset(&set, DNOTIFY_SIGNAL); + sigprocmask(SIG_UNBLOCK, &set, NULL); + if ((fd = open(pipefs_nfsdir, O_RDONLY)) == -1) { printerr(0, "ERROR: failed to open %s: %s\n", pipefs_nfsdir, strerror(errno));