Files
natpass/code/client/rule/vnc/process/process_linux.go
T
2022-01-05 14:22:11 +08:00

36 lines
739 B
Go

package process
import (
"fmt"
"os"
"os/exec"
"github.com/jkstack/natpass/code/client/rule/vnc/vncnetwork"
)
// CreateWorker create worker process
func CreateWorker(name, confDir string, showCursor bool) (*Process, error) {
dir, err := os.Executable()
if err != nil {
return nil, err
}
var p Process
p.chWrite = make(chan *vncnetwork.VncMsg)
p.chImage = make(chan *vncnetwork.ImageData)
p.chClipboard = make(chan *vncnetwork.ClipboardData)
port, err := p.listenAndServe()
if err != nil {
return nil, err
}
cmd := exec.Command(dir, "-conf", confDir,
"-action", "vnc.worker",
"-name", name,
"-vport", fmt.Sprintf("%d", port))
err = cmd.Start()
if err != nil {
p.Close()
return nil, err
}
return &p, nil
}