os中关于进程的操作

package main;
 
import (
    "os"
    "fmt"
    "time"
)
 
// os包中关于进程的操作函数
 
func main() {
    // 设置新进程的属性
    attr := &os.ProcAttr{
        // files指定新进程继承的活动文件对象
        // 前三个分别为,标准输入、标准输出、标准错误输出
        Files: []*os.File{os.Stdin, os.Stdout, os.Stderr},
        // 新进程的环境变量
        Env: os.Environ(),
    }
 
    // win下通过记事本打开1.txt
    // 开始一个新进程
    p, err := os.StartProcess("C:\\Windows\\System32\\notepad.exe", []string{"C:\\Windows\\System32\\notepad.exe", "D:\\1.txt"}, attr);
    if err != nil {
        fmt.Println(err);
    }
    fmt.Println(p);
    fmt.Println("进程ID:", p.Pid);
 
    // 通过进程ID查找进程
    p2, _ := os.FindProcess(p.Pid);
    fmt.Println(p2);
 
    // 等待10秒,执行函数
    time.AfterFunc(time.Second*10, func() {
        // 向p进程发送退出信号
        p.Signal(os.Kill);
    });
 
    // 等待进程p的退出,返回进程状态
    ps, _ := p.Wait();
    fmt.Println(ps.String());
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。