[libvirt] [PATCH 3/5] Introduce functions for checking whether a pidfile is valid
Eric Blake
eblake at redhat.com
Wed Aug 17 17:34:34 UTC 2011
On 08/12/2011 08:07 AM, Daniel P. Berrange wrote:
> From: "Daniel P. Berrange"<berrange at redhat.com>
>
> In some cases the caller of virPidFileRead might like extra checks
> to determine whether the pid just read is really the one they are
> expecting. This adds virPidFileReadIfAlive which will check whether
> the pid is still alive with kill(0, -1), and (on linux only) will
> look at /proc/$PID/path
>
> + * Returns -errno upon error, or zero on successful
> + * reading of the pidfile. If the PID was not still
> + * alive, zero will be returned, but @pid will be
> + * set to -1.
> + */
> +int virPidFileReadPathIfAlive(const char *path,
> + pid_t *pid,
> + const char *binpath)
> +{
> + int rc;
> + char *procpath = NULL;
> +
> + rc = virPidFileReadPath(path, pid);
> + if (rc< 0)
> + return rc;
> +
> + /* Check that it's still alive */
> + if (kill(*pid, 0)< 0) {
> + *pid = -1;
> + return 0;
> + }
This fails to compile on mingw, which lacks kill(). What's the best
approach to fixing this, always fail with -ENOSYS, since right now we
aren't making any use of pid files on mingw builds anyway?
--
Eric Blake eblake at redhat.com +1-801-349-2682
Libvirt virtualization library http://libvirt.org
More information about the libvir-list
mailing list