// Copyright (C) 2007-2010 Kai Seidler, oswald@apachefriends.org, GPL-licensed #include #include #include #include "xampp_util.h" int main(int argc, char **argv) { long pid; HANDLE shutdownEvent; char shutdownEventName[32]; FILE *fp; char *pidfile; char *startapache[10][10] = { {"httpd.exe", "-DPHP5", NULL}, {NULL} }; char *startmysql[10][10] = { {"mysqld.exe", "--standalone", NULL}, {NULL} }; if(argc!=2) { printf("Usage: %s \n",argv[0]); return 1; } xampp_cdx(); chdir(".."); if(!strcmp(argv[1],"stopapache")) { xampp_stop("logs\\httpd.pid","ap%d_shutdown"); } else if(!strcmp(argv[1],"startapache")) { xampp_call(startapache); } else if(!strcmp(argv[1],"startmysql")) { xampp_call(startmysql); } else if(!strcmp(argv[1],"stopmysql")) { xampp_stop("var\\mysql\\mysql.pid","MySQLShutdown%d"); } else { printf("Unknown command %s\n",argv[1]); return 2; } return 0; printf("Stopping XAMPP...\n"); Sleep(1000); xampp_cdx(); pidfile="logs\\httpd.pid"; fp=fopen(pidfile,"r"); if(!fp) { printf("Can't find %s.\n", pidfile); } else { fscanf(fp,"%d", &pid); fclose(fp); sprintf_s(shutdownEventName, sizeof(shutdownEventName), "ap%d_shutdown", pid); shutdownEvent = OpenEvent(EVENT_MODIFY_STATE, FALSE, shutdownEventName); if (shutdownEvent != NULL) { SetEvent(shutdownEvent); } else { printf("Can't find Apache process #%d.\n", pid); return(1); } } pidfile="var\\mysql\\mysql.pid"; fp=fopen(pidfile,"r"); if(!fp) { printf("Can't find %s.\n", pidfile); return(1); } else { fscanf(fp,"%d", &pid); fclose(fp); pidfile="var\\mysql\\mysql.pid"; sprintf_s(shutdownEventName, sizeof(shutdownEventName), "MySQLShutdown%d", pid); shutdownEvent = OpenEvent(EVENT_MODIFY_STATE, FALSE, shutdownEventName); if (shutdownEvent != NULL) { SetEvent(shutdownEvent); } else { printf("Can't find MySQL process #%d.\n", pid); return(1); } } return(0); }