Есть некий процесс с параметрами, который должен корректно запускаться и останавливаться из NT-сервиса. Попробовал два варианта его запуска с помощью CreateProcess().
Вариант 1:
STARTUPINFO si;
memset(&si, 0, sizeof(si));
si.cb = sizeof(si);
PROCESS_INFORMATION pi;
memset(&pi, 0, sizeof(pi));
LPSTR lpPrName = "bash.exe";
LPSTR lpParam = "start_demon.bash";
CreateProcess(lpPrName, lpParam, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);
В этом случае GetLastError()
возвращает ERROR_ALREADY_EXISTS.
Вариант 2:
STARTUPINFO si;
memset(&si, 0, sizeof(si));
si.cb = sizeof(si);
PROCESS_INFORMATION pi;
memset(&pi, 0, sizeof(pi));
LPSTR lpPrName = "bash.exe";
LPSTR lpParam = "start_demon.bash";
char Cmd[255];
sprintf_s(Cmd, "%s %s", lpPrName, lpParam);
CreateProcess(NULL, Cmd, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);
В этом случае процесс вроде как запускается, однако процесса с таким PID'ом я нигде не наблюдаю.
Подскажите, что я делаю не так?
Виртуальный выделенный сервер (VDS) становится отличным выбором
Для лучшего понимания устройства контейнеров решил их все реализоватьИ вот столкнулся с проблемой на std::deque
У меня был вопрос связан с отображением виджетаНо как его переделать чтоб получить значение от виджета ? Сам виджет