node-process-watcher
Version:
Get process information in real time
131 lines (130 loc) • 3.75 kB
TypeScript
export interface process_info {
id: number;
name: string;
user_name: string;
mem: number;
cpu: number;
}
export interface node_process_watcher_type {
/**
* 监听进程,需要提供一个 key
* @param key
* @param call
* @param pids 监听特定进程信息(只是起到过滤作用)
*/
on: (key: string, call: (list: process_info[]) => any, pids?: number[]) => void;
/**
* 关闭某个key的监听 只有当前系统上所有的key都关闭了,程序才会停止实时监控进程信息
* @param key
*/
close: (key: string) => void;
/**
* 对某个key的监听进程id切换设置
* 监听特定进程信息(只是起到过滤作用)
* @param key
* @param pids
*/
pids: (key: string, pids: number[]) => void;
/**
* get sys all pid 获取系统所有的进程pid信息
* @param ppid
*/
get_all_pid(ppid?: number): {
pid: number;
cpu: number;
ppid: number;
}[];
/**
* kill process 可以关闭所有的子进程
* @param pid
* @param kill_all_children default false
*/
kill_process(pid: number, kill_all_children?: boolean): void;
/**
* 使用子线程遍历全部的文件与数量
* @param folder_name
* @param on
*/
on_folder_size(folder_name: string, on: (file_num: number, total_size: number) => void): void;
/**
* 停止对某个目录的数量统计
* @param folder_name
*/
stop_folder_size(folder_name: string): void;
get_system_proxy_for_windows(): {
enabled: boolean;
ip: boolean;
port: number;
bypass?: string;
useForLocal?: boolean;
};
set_system_proxy_for_windows(data: {
enabled: boolean;
ip: boolean;
port: number;
bypass?: string;
useForLocal?: boolean;
}): boolean;
get_system_proxy_for_mac(): {
name: string;
proxies: {
type: number;
enabled: boolean;
ip: string;
port: number;
bypass?: string;
useForLocal?: boolean;
}[];
bypass?: string;
}[];
set_system_proxy_for_mac(data: {
name: string;
proxies: {
type: number;
enabled: boolean;
ip: string;
port: number;
bypass?: string;
useForLocal?: boolean;
}[];
bypass?: string;
}[]): boolean;
/**
* 判断当前进程是否以管理员/root权限运行
*/
is_admin(): boolean;
/**
* 在 Windows Service 中,
* 使用 CreateProcessAsUser 在当前登录用户桌面启动程序
*
* ⚠️ 仅 Windows 生效
* ⚠️ Service 必须以 LocalSystem 运行
*
* @param exe_path exe 完整路径
* @param cwd 工作目录
* @param args
*/
launch_process_as_user_for_win_service(exe_path: string, args?: string, cwd?: string): number;
launch_process_as_user_for_win_service_console(exe_path: string, args: string, cwd: string, on_data: (data: string) => void, on_done: () => void, on_pid: (pid: number) => void): void;
get_all_processes(): {
pid: number;
name: string;
}[];
get_username_by_uid(uid: number): string;
get_all_users(): ({
uid: number;
username: string;
} | {
groups: string[];
username: string;
domain: string;
sid: string;
})[];
get_file_owner(file_path: string): {
username: string;
domain: string;
sid: string;
type: string;
};
}
export declare const node_process_watcher: node_process_watcher_type;