Использую такой подход:
Код: Выделить всё
function IsProcessRunning(ProcessID: SizeUInt): Boolean;
const
ESRCH = 3; // No such process
begin
Result := not ((FpKill(ProcessId, 0) = -1) and (fpGetErrNo = ESRCH));
end;
Для понимания см.:
http://man7.org/linux/man-pages/man2/kill.2.html
