118c2aff7Sartem /*************************************************************************** 218c2aff7Sartem * CVSID: $Id$ 318c2aff7Sartem * 418c2aff7Sartem * runner.c - Process running code 518c2aff7Sartem * 618c2aff7Sartem * Copyright (C) 2006 Sjoerd Simons, <sjoerd@luon.net> 7*3ab06c27SMilan Jurik * Copyright (C) 2007 Codethink Ltd. Author Rob Taylor <rob.taylor@codethink.co.uk> 818c2aff7Sartem * 918c2aff7Sartem * Licensed under the Academic Free License version 2.1 1018c2aff7Sartem * 1118c2aff7Sartem * This program is free software; you can redistribute it and/or modify 1218c2aff7Sartem * it under the terms of the GNU General Public License as published by 1318c2aff7Sartem * the Free Software Foundation; either version 2 of the License, or 1418c2aff7Sartem * (at your option) any later version. 1518c2aff7Sartem * 1618c2aff7Sartem * This program is distributed in the hope that it will be useful, 1718c2aff7Sartem * but WITHOUT ANY WARRANTY; without even the implied warranty of 1818c2aff7Sartem * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1918c2aff7Sartem * GNU General Public License for more details. 2018c2aff7Sartem * 2118c2aff7Sartem * You should have received a copy of the GNU General Public License 2218c2aff7Sartem * along with this program; if not, write to the Free Software 2318c2aff7Sartem * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 2418c2aff7Sartem * 2518c2aff7Sartem **************************************************************************/ 2618c2aff7Sartem #include <stdio.h> 2718c2aff7Sartem #include <unistd.h> 2818c2aff7Sartem #include <stdlib.h> 2918c2aff7Sartem #include <sys/types.h> 3018c2aff7Sartem #include <sys/stat.h> 3118c2aff7Sartem #include <sys/wait.h> 3218c2aff7Sartem #include <signal.h> 3318c2aff7Sartem #include <string.h> 3418c2aff7Sartem 3518c2aff7Sartem #define DBUS_API_SUBJECT_TO_CHANGE 3618c2aff7Sartem #include <dbus/dbus-glib-lowlevel.h> 3718c2aff7Sartem 3818c2aff7Sartem #include <glib.h> 3918c2aff7Sartem #include "utils.h" 4018c2aff7Sartem #include "runner.h" 4118c2aff7Sartem 4218c2aff7Sartem /* Successful run of the program */ 4318c2aff7Sartem #define HALD_RUN_SUCCESS 0x0 4418c2aff7Sartem /* Process was killed because of running too long */ 4518c2aff7Sartem #define HALD_RUN_TIMEOUT 0x1 4618c2aff7Sartem /* Failed to start for some reason */ 4718c2aff7Sartem #define HALD_RUN_FAILED 0x2 48