diff --git a/frontend/app/block/block.scss b/frontend/app/block/block.scss
index 65806ba78d..6b0fda769c 100644
--- a/frontend/app/block/block.scss
+++ b/frontend/app/block/block.scss
@@ -296,7 +296,7 @@
backdrop-filter: blur(50px);
border-radius: 6px;
box-shadow: 0px 13px 16px 0px rgb(from var(--block-bg-color) r g b / 40%);
- opacity: 0.85;
+ opacity: 0.9;
.connstatus-content {
display: flex;
diff --git a/frontend/app/block/connstatusoverlay.tsx b/frontend/app/block/connstatusoverlay.tsx
index 6c90511d7d..526dbbae32 100644
--- a/frontend/app/block/connstatusoverlay.tsx
+++ b/frontend/app/block/connstatusoverlay.tsx
@@ -80,7 +80,7 @@ const StalledOverlay = React.memo(
return (
diff --git a/package-lock.json b/package-lock.json
index 9805bd73d8..470c12b2f2 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "waveterm",
- "version": "0.14.0-beta.0",
+ "version": "0.14.0-beta.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "waveterm",
- "version": "0.14.0-beta.0",
+ "version": "0.14.0-beta.1",
"hasInstallScript": true,
"license": "Apache-2.0",
"workspaces": [
diff --git a/pkg/jobcontroller/jobcontroller.go b/pkg/jobcontroller/jobcontroller.go
index 24d25814a4..e41d77585c 100644
--- a/pkg/jobcontroller/jobcontroller.go
+++ b/pkg/jobcontroller/jobcontroller.go
@@ -1155,6 +1155,7 @@ func doReconnectJob(ctx context.Context, jobId string, rtOpts *waveobj.RuntimeOp
return fmt.Errorf("route did not establish after successful reconnection: %w", err)
}
SetJobConnStatus(jobId, JobConnStatus_Connected)
+ sendBlockJobStatusEventByJob(ctx, job)
telemetry.GoRecordTEventWrap(&telemetrydata.TEvent{
Event: "job:reconnect",
diff --git a/pkg/shellexec/conninterface.go b/pkg/shellexec/conninterface.go
index 1ef93097bb..f17a83c21f 100644
--- a/pkg/shellexec/conninterface.go
+++ b/pkg/shellexec/conninterface.go
@@ -91,11 +91,13 @@ func (cw CmdWrap) KillGraceful(timeout time.Duration) {
return
}
if runtime.GOOS == "windows" {
- cw.Cmd.Process.Signal(os.Interrupt)
- } else if cw.IsShell {
- syscall.Kill(cw.Cmd.Process.Pid, syscall.SIGHUP)
+ cw.Cmd.Process.Kill()
+ return
+ }
+ if cw.IsShell {
+ unixutil.SignalHup(cw.Cmd.Process.Pid)
} else {
- cw.Cmd.Process.Signal(syscall.SIGTERM)
+ unixutil.SignalTerm(cw.Cmd.Process.Pid)
}
go func() {
defer func() {
diff --git a/pkg/util/unixutil/unixutil_unix.go b/pkg/util/unixutil/unixutil_unix.go
index 1b6a0bae38..23a9e9e7b0 100644
--- a/pkg/util/unixutil/unixutil_unix.go
+++ b/pkg/util/unixutil/unixutil_unix.go
@@ -60,3 +60,11 @@ func GetSignalName(sig os.Signal) string {
func SetCloseOnExec(fd int) {
unix.CloseOnExec(fd)
}
+
+func SignalTerm(pid int) error {
+ return syscall.Kill(pid, syscall.SIGTERM)
+}
+
+func SignalHup(pid int) error {
+ return syscall.Kill(pid, syscall.SIGHUP)
+}
diff --git a/pkg/util/unixutil/unixutil_windows.go b/pkg/util/unixutil/unixutil_windows.go
index 8b46e24cd8..15352a0437 100644
--- a/pkg/util/unixutil/unixutil_windows.go
+++ b/pkg/util/unixutil/unixutil_windows.go
@@ -27,3 +27,16 @@ func GetSignalName(sig os.Signal) string {
func SetCloseOnExec(fd int) {
}
+
+func SignalTerm(pid int) error {
+ proc, err := os.FindProcess(pid)
+ if err != nil {
+ return err
+ }
+ return proc.Kill()
+}
+
+// this is a no-op on windows
+func SignalHup(pid int) error {
+ return nil
+}