X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/35ee7e44a62f9126a83c1243b549d47cc5ca7b43..92951e2c3eecbbbb2af4244df13c32a6a032d5ad:/IkiWiki/Plugin/inline.pm diff --git a/IkiWiki/Plugin/inline.pm b/IkiWiki/Plugin/inline.pm index c6c6c6a1e..937bd281d 100644 --- a/IkiWiki/Plugin/inline.pm +++ b/IkiWiki/Plugin/inline.pm @@ -342,7 +342,18 @@ sub pingurl (@) { #{{{ return; } - # TODO: daemonize here so slow pings don't slow down wiki updates + # daemonize here so slow pings don't slow down wiki updates + eval q{use POSIX ’setsid’}; + chdir '/'; + open STDIN, '/dev/null'; + open STDOUT, '>/dev/null'; + defined(my $pid = fork) or error("Can't fork: $!"); + return if $pid; + setsid() or error("Can't start a new session: $!"); + open STDERR, '>&STDOUT' or error("Can’t dup stdout: $!"); + + # Don't need to keep a lock on the wiki as a daemon. + IkiWiki::unlockwiki(); foreach my $page (keys %toping) { my $title=pagetitle(basename($page)); @@ -367,6 +378,8 @@ sub pingurl (@) { #{{{ } } } + + exit 0; # daemon done } #}}} 1