2016-06-15 05:32:35 +02:00
|
|
|
#pragma once
|
|
|
|
|
2020-12-11 16:07:13 -08:00
|
|
|
#include <sys/types.h>
|
|
|
|
|
2016-06-15 05:32:35 +02:00
|
|
|
#include "common.hpp"
|
|
|
|
|
2016-11-19 06:22:44 +01:00
|
|
|
POLYBAR_NS
|
2016-06-15 05:32:35 +02:00
|
|
|
|
|
|
|
namespace process_util {
|
2016-11-02 20:22:45 +01:00
|
|
|
bool in_parent_process(pid_t pid);
|
|
|
|
bool in_forked_process(pid_t pid);
|
2016-06-15 05:32:35 +02:00
|
|
|
|
2020-11-25 12:16:06 +01:00
|
|
|
void redirect_stdio_to_dev_null();
|
|
|
|
|
2020-12-12 02:21:36 +01:00
|
|
|
pid_t spawn_async(std::function<void()> const& lambda);
|
|
|
|
void fork_detached(std::function<void()> const& lambda);
|
2020-05-06 22:28:05 +02:00
|
|
|
|
2016-12-03 15:46:48 +01:00
|
|
|
void exec(char* cmd, char** args);
|
2021-09-29 00:02:26 +05:30
|
|
|
void exec_sh(const char* cmd, const vector<pair<string, string>>& env = {});
|
2016-06-15 05:32:35 +02:00
|
|
|
|
2020-12-12 02:21:36 +01:00
|
|
|
int wait(pid_t pid);
|
|
|
|
|
2020-11-25 12:16:06 +01:00
|
|
|
pid_t wait_for_completion(pid_t process_id, int* status_addr = nullptr, int waitflags = 0);
|
2016-11-02 20:22:45 +01:00
|
|
|
pid_t wait_for_completion(int* status_addr, int waitflags = 0);
|
|
|
|
pid_t wait_for_completion_nohang(pid_t process_id, int* status);
|
|
|
|
pid_t wait_for_completion_nohang(int* status);
|
|
|
|
pid_t wait_for_completion_nohang();
|
2016-06-15 05:32:35 +02:00
|
|
|
|
2016-11-02 20:22:45 +01:00
|
|
|
bool notify_childprocess();
|
2020-11-25 12:16:06 +01:00
|
|
|
} // namespace process_util
|
2016-06-15 05:32:35 +02:00
|
|
|
|
2016-11-19 06:22:44 +01:00
|
|
|
POLYBAR_NS_END
|