diff --git a/src/bin/pg_ctl/pg_ctl.c b/src/bin/pg_ctl/pg_ctl.c new file mode 100644 index 50d4586..89a9544 *** a/src/bin/pg_ctl/pg_ctl.c --- b/src/bin/pg_ctl/pg_ctl.c *************** CreateRestrictedProcess(char *cmd, PROCE *** 1561,1566 **** --- 1561,1567 ---- HANDLE restrictedToken; SID_IDENTIFIER_AUTHORITY NtAuthority = {SECURITY_NT_AUTHORITY}; SID_AND_ATTRIBUTES dropSids[2]; + DWORD flags; /* Functions loaded dynamically */ __CreateRestrictedToken _CreateRestrictedToken = NULL; *************** CreateRestrictedProcess(char *cmd, PROCE *** 1636,1642 **** AddUserToTokenDacl(restrictedToken); #endif ! r = CreateProcessAsUser(restrictedToken, NULL, cmd, NULL, NULL, TRUE, CREATE_SUSPENDED, NULL, NULL, &si, processInfo); Kernel32Handle = LoadLibrary("KERNEL32.DLL"); if (Kernel32Handle != NULL) --- 1637,1650 ---- AddUserToTokenDacl(restrictedToken); #endif ! flags = CREATE_SUSPENDED; ! ! /* Protect console process from Ctrl-C */ ! if (!as_service) { ! flags |= CREATE_NEW_PROCESS_GROUP; ! } ! ! r = CreateProcessAsUser(restrictedToken, NULL, cmd, NULL, NULL, TRUE, flags, NULL, NULL, &si, processInfo); Kernel32Handle = LoadLibrary("KERNEL32.DLL"); if (Kernel32Handle != NULL)