Also stop and resume child processies.
This commit is contained in:
parent
f32b7bc869
commit
f196f48a1c
3 changed files with 229 additions and 85 deletions
22
process.h
22
process.h
|
|
@ -1,15 +1,33 @@
|
|||
#pragma once
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <sys/types.h>
|
||||
|
||||
class Process
|
||||
{
|
||||
private:
|
||||
pid_t pid_ = -1;
|
||||
pid_t ppid_ = -1;
|
||||
std::string name_;
|
||||
bool stoped_ = false;
|
||||
|
||||
private:
|
||||
std::vector<std::string> openStatus();
|
||||
std::vector<pid_t> getAllProcessPids();
|
||||
static pid_t convertPid(const std::string& pid);
|
||||
|
||||
public:
|
||||
pid_t pid = -1;
|
||||
std::string name;
|
||||
|
||||
bool operator==(const Process& in);
|
||||
bool operator!=(const Process& in);
|
||||
std::string getName();
|
||||
void stop(bool children = false);
|
||||
void resume(bool children = false);
|
||||
bool getStoped();
|
||||
pid_t getPid();
|
||||
pid_t getPPid();
|
||||
Process getParent(){return Process(getPPid());}
|
||||
std::vector<Process> getChildren();
|
||||
Process(){}
|
||||
Process(pid_t pidIn);
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue