along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- $Id: process.c,v 1.1.2.61 2003/08/02 20:50:38 guus Exp $
+ $Id: process.c,v 1.1.2.63 2003/08/03 21:45:13 guus Exp $
*/
#include "system.h"
return ERROR_CALL_NOT_IMPLEMENTED;
}
+ if(!running) {
+ status.dwCurrentState = SERVICE_STOP_PENDING;
+ SetServiceStatus(statushandle, &status);
+ }
+
return NO_ERROR;
}
status.dwServiceType = SERVICE_WIN32;
- status.dwCurrentState = SERVICE_RUNNING;
status.dwControlsAccepted = SERVICE_ACCEPT_STOP | SERVICE_ACCEPT_SHUTDOWN;
status.dwWin32ExitCode = 0;
status.dwServiceSpecificExitCode = 0;
logger(LOG_ERR, _("System call `%s' failed: %s"), "RegisterServiceCtrlHandlerEx", winerror(GetLastError()));
err = 1;
} else {
+ status.dwCurrentState = SERVICE_START_PENDING;
+ SetServiceStatus(statushandle, &status);
+
+ status.dwCurrentState = SERVICE_RUNNING;
SetServiceStatus(statushandle, &status);
err = main2(argc, argv);
status.dwCurrentState = SERVICE_STOPPED;
- status.dwWin32ExitCode = err;
-
+ //status.dwWin32ExitCode = err;
SetServiceStatus(statushandle, &status);
}
#ifndef HAVE_MINGW
static RETSIGTYPE sigterm_handler(int a)
{
- logger(LOG_NOTICE, _("Got TERM signal"));
+ logger(LOG_NOTICE, _("Got %s signal"), "TERM");
running = false;
}
static RETSIGTYPE sigquit_handler(int a)
{
- logger(LOG_NOTICE, _("Got QUIT signal"));
+ logger(LOG_NOTICE, _("Got %s signal"), "QUIT");
running = false;
}
static RETSIGTYPE sighup_handler(int a)
{
- logger(LOG_NOTICE, _("Got HUP signal"));
+ logger(LOG_NOTICE, _("Got %s signal"), "HUP");
sighup = true;
}
static RETSIGTYPE sigint_handler(int a)
{
+ logger(LOG_NOTICE, _("Got %s signal"), "INT");
+
if(saved_debug_level != -1) {
logger(LOG_NOTICE, _("Reverting to old debug level (%d)"),
saved_debug_level);
static RETSIGTYPE sigalrm_handler(int a)
{
- logger(LOG_NOTICE, _("Got ALRM signal"));
+ logger(LOG_NOTICE, _("Got %s signal"), "ALRM");
sigalrm = true;
}