1
0
mirror of https://github.com/duke-git/lancet.git synced 2026-02-04 12:52:28 +08:00

feat: add StartProcess, StopProcess, KillProcess for system package

This commit is contained in:
dudaodong
2024-09-13 15:09:44 +08:00
parent 3e1ac5e0b5
commit e58c9b797b
5 changed files with 316 additions and 15 deletions

View File

@@ -1,6 +1,6 @@
# System
system 包含 os, runtime, shell command 相关函数。
system 包含 os, 运行time, shell command 相关函数。
<div STYLE="page-break-after: always;"></div>
@@ -308,3 +308,99 @@ func main() {
fmt.Println(osBit) // 32 or 64
}
```
### <span id="StartProcess">StartProcess</span>
<p>创建进程。</p>
<b>函数签名:</b>
```go
func StartProcess(command string, args ...string) (int, error)
```
<b>示例:<span style="float:right;display:inline-block">[运行](todo)</span></b>
```go
import (
"fmt"
"github.com/duke-git/lancet/v2/system"
)
func main() {
pid, err := system.StartProcess("sleep", "2")
if err != nil {
return
}
fmt.Println(pid)
}
```
### <span id="StopProcess">StopProcess</span>
<p>停止进程。</p>
<b>函数签名:</b>
```go
func StopProcess(pid int) error
```
<b>示例:<span style="float:right;display:inline-block">[运行](todo)</span></b>
```go
import (
"fmt"
"github.com/duke-git/lancet/v2/system"
)
func main() {
pid, err := system.StartProcess("sleep", "10")
if err != nil {
return
}
time.Sleep(1 * time.Second)
err = system.StopProcess(pid)
fmt.Println(err)
// Output:
// <nil>
}
```
### <span id="KillProcess">KillProcess</span>
<p>杀掉进程。</p>
<b>函数签名:</b>
```go
func KillProcess(pid int) error
```
<b>示例:<span style="float:right;display:inline-block">[运行](todo)</span></b>
```go
import (
"fmt"
"github.com/duke-git/lancet/v2/system"
)
func main() {
pid, err := system.StartProcess("sleep", "10")
if err != nil {
return
}
time.Sleep(1 * time.Second)
err = system.KillProcess(pid)
fmt.Println(err)
// Output:
// <nil>
}
```

View File

@@ -31,6 +31,9 @@ import (
- [CompareOsEnv](#CompareOsEnv)
- [ExecCommand](#ExecCommand)
- [GetOsBits](#GetOsBits)
- [StartProcess](#StartProcess)
- [StopProcess](#StopProcess)
- [KillProcess](#KillProcess)
<div STYLE="page-break-after: always;"></div>
@@ -249,7 +252,7 @@ The second parameter of the function is the cmd option control parameter. The ty
```go
type (
Option func(*exec.Cmd)
Option func(*exec.Cmd)
)
func ExecCommand(command string, opts ...Option) (stdout, stderr string, err error)
```
@@ -288,7 +291,7 @@ func main() {
### <span id="GetOsBits">GetOsBits</span>
<p>Get current os bits, 32bit or 64bit. return 32 or 64</p>
<p>Get current os bits, 32bit or 64bit. return 32 or 64.</p>
<b>Signature:</b>
@@ -309,3 +312,99 @@ func main() {
fmt.Println(osBit) // 32 or 64
}
```
### <span id="StartProcess">StartProcess</span>
<p>Start a new process with the specified name and arguments.</p>
<b>Signature:</b>
```go
func StartProcess(command string, args ...string) (int, error)
```
<b>Example:<span style="float:right;display:inline-block">[Run](todo)</span></b>
```go
import (
"fmt"
"github.com/duke-git/lancet/v2/system"
)
func main() {
pid, err := system.StartProcess("sleep", "2")
if err != nil {
return
}
fmt.Println(pid)
}
```
### <span id="StopProcess">StopProcess</span>
<p>Stop a process by pid.</p>
<b>Signature:</b>
```go
func StopProcess(pid int) error
```
<b>Example:<span style="float:right;display:inline-block">[Run](todo)</span></b>
```go
import (
"fmt"
"github.com/duke-git/lancet/v2/system"
)
func main() {
pid, err := system.StartProcess("sleep", "10")
if err != nil {
return
}
time.Sleep(1 * time.Second)
err = system.StopProcess(pid)
fmt.Println(err)
// Output:
// <nil>
}
```
### <span id="KillProcess">KillProcess</span>
<p>Kill a process by pid.</p>
<b>Signature:</b>
```go
func KillProcess(pid int) error
```
<b>Example:<span style="float:right;display:inline-block">[Run](todo)</span></b>
```go
import (
"fmt"
"github.com/duke-git/lancet/v2/system"
)
func main() {
pid, err := system.StartProcess("sleep", "10")
if err != nil {
return
}
time.Sleep(1 * time.Second)
err = system.KillProcess(pid)
fmt.Println(err)
// Output:
// <nil>
}
```