fix: 添加后台执行设置以防止进程阻塞
This commit is contained in:
@@ -4,6 +4,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
|
"syscall"
|
||||||
|
|
||||||
"github.com/creack/pty"
|
"github.com/creack/pty"
|
||||||
)
|
)
|
||||||
@@ -12,7 +13,12 @@ import (
|
|||||||
func NewClientSession(cols, rows int) (*LocalClientSession, error) {
|
func NewClientSession(cols, rows int) (*LocalClientSession, error) {
|
||||||
// Create arbitrary command.
|
// Create arbitrary command.
|
||||||
c := exec.Command("bash")
|
c := exec.Command("bash")
|
||||||
|
// 为防止当前进程阻塞,设置为后台执行
|
||||||
|
c.SysProcAttr = &syscall.SysProcAttr{
|
||||||
|
HideWindow: true, // 隐藏窗口
|
||||||
|
CreationFlags: syscall.CREATE_NEW_CONSOLE, // 创建新控制台
|
||||||
|
NoInheritHandles: true, // 不继承句柄
|
||||||
|
}
|
||||||
// Start the command with a pty.
|
// Start the command with a pty.
|
||||||
ptmx, err := pty.StartWithSize(c, &pty.Winsize{
|
ptmx, err := pty.StartWithSize(c, &pty.Winsize{
|
||||||
Rows: uint16(rows), // ws_row: Number of rows (in cells).
|
Rows: uint16(rows), // ws_row: Number of rows (in cells).
|
||||||
|
|||||||
Reference in New Issue
Block a user