操作系统
os
包提供了一个跨平台的操作系统功能交互接口。
启动进程
你可以使用 os/exec
包启动进程,该包提供了启动外部进程的方法。
package main
import (
"fmt"
"os/exec"
)
func main() {
// 要执行的命令
cmd := exec.Command("echo", "Hello, World!")
// 运行命令并捕获其输出
output, err := cmd.CombinedOutput()
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println("Output:", string(output))
}
信号
你可以使用 os/signal
包处理信号。信号是操作系统通知进程发生特定事件的一种方式,例如用户中断(Ctrl+C)。
package main
import (
"fmt"
"os"
"os/signal"
"syscall"
)
func main() {
signalChannel := make(chan os.Signal, 1)
// 监听如下信号
signal.Notify(signalChannel, syscall.SIGINT, syscall.SIGTERM)
fmt.Println("Application is running. Press Ctrl+C to exit.")
// 阻塞,直到接收到信号
signalReceived := <-signalChannel
fmt.Printf("Received signal: %v\n", signalReceived)
fmt.Println("Cleaning up and exiting.")
}
退出
os.Exit
函数允许你以指定的退出码终止程序。
package main
import (
"fmt"
"os"
)
func main() {
fmt.Println("Before os.Exit")
// 以状态码 1 退出
os.Exit(1)
// 这行代码将不会被执行
fmt.Println("After os.Exit")
}
Loading...
> 此处输出代码运行结果