1. 获取当前进程的ID:
package main
import (
"fmt"
"github.com/gogf/gf/os/gproc"
)
func main() {
// 获取当前进程的ID
pid := gproc.Pid()
fmt.Println("当前进程ID:", pid)
}
2. 创建并执行新进程:
package main
import (
"fmt"
"github.com/gogf/gf/os/gproc"
)
func main() {
// 在系统中执行shell命令,并返回新创建的进程的ID
childPid, err := gproc.ShellExec("echo 'Hello, gproc!'")
if err != nil {
fmt.Println("创建子进程失败:", err)
return
}
fmt.Println("子进程ID:", childPid)
}
3. 检查进程是否在运行:
package main
import (
"fmt"
"github.com/gogf/gf/os/gproc"
)
func main() {
// 检查指定进程ID的进程是否还在运行
isRunning, err := gproc.IsRunning(12345) // 替换为你要检查的进程ID
if err != nil {
fmt.Println("检查进程运行状态失败:", err)
return
}
if isRunning {
fmt.Println("进程仍在运行")
} else {
fmt.Println("进程已退出")
}
}
4. 进程间数据共享:
package main
import (
"fmt"
"github.com/gogf/gf/os/gproc"
)
func main() {
// 在进程间共享数据,将一个键值对存储到全局变量中
gproc.Set("myKey", "myValue")
// 从全局变量中获取指定键的值
value := gproc.Get("myKey")
fmt.Println("共享数据:", value)
}
5. 结束进程:
package main
import (
"fmt"
"github.com/gogf/gf/os/gproc"
)
func main() {
// 结束指定进程ID的进程
err := gproc.Kill(12345) // 替换为你要结束的进程ID
if err != nil {
fmt.Println("结束进程失败:", err)
return
}
fmt.Println("进程已结束")
}
这些是 gproc 模块的一些基本用法。根据你的需求,你可以使用这些功能进行进程管理和通信。请注意,在使用时需要注意操作系统的差异性,有些功能可能在不同的操作系统上有不同的行为。
转载请注明出处:http://www.zyzy.cn/article/detail/7756/GoFrame