diff -Naur openrc-0.11.8.orig/src/rc/runscript.c openrc-0.11.8/src/rc/runscript.c --- openrc-0.11.8.orig/src/rc/runscript.c 2013-01-31 13:27:15.445174830 +0700 +++ openrc-0.11.8/src/rc/runscript.c 2013-01-31 13:26:30.481837217 +0700 @@ -311,8 +311,12 @@ lock_fd = open(PREFIX_LOCK, O_WRONLY | O_CREAT, 0664); if (lock_fd != -1) { - if (flock(lock_fd, LOCK_EX) != 0) - eerror("flock() failed: %s", strerror(errno)); + while (flock(lock_fd, LOCK_EX) != 0) { + if (errno != EINTR) { + eerror("flock() failed: %s", strerror(errno)); + break; + } + } } #ifdef RC_DEBUG else