瀏覽代碼

!2 fix setid and runuser

chenliangyu 3 月之前
父節點
當前提交
86f6304369
共有 2 個文件被更改,包括 18 次插入9 次删除
  1. 9 4
      addin/res/RunScript/startBrower.sh
  2. 9 5
      addin/res/RunScript/startUOSBrower.sh

+ 9 - 4
addin/res/RunScript/startBrower.sh

@@ -33,15 +33,20 @@ pid=$(pgrep startdde)
 . <(xargs -0 bash -c 'printf "export %q\n" "$@"' -- </proc/$pid/environ)
 name=$(ps -o uname= -p "${pid}")
 echo "run in $name"
+
+FILE="/tmp/$GROUP_NAME.pgid"
+rm -f "$FILE"  # 强制删除文件(忽略不存在的情况)
+touch "$FILE"  # 创建新文件
+chmod 666 "$FILE"  # 可选:设置权限
+
 if [ $# -eq 0 ]
 then
-    sudo setsid runuser -u "$name" -- bash -c "$exec &" > /dev/null 2>&1 &
+    runuser -u  $name -- bash -c "setsid $exec & sudo echo \$! > /tmp/$GROUP_NAME.pgid"
 else
-	sudo setsid runuser -u "$name" -- bash -c "$exec $* &" > /dev/null 2>&1 &
+    runuser -u  $name -- bash -c "setsid $exec $* & sudo echo \$! > /tmp/$GROUP_NAME.pgid"
 fi
 
-PGID=$(ps -o pgid= $! | tr -d ' ')
-echo $PGID > /tmp/$GROUP_NAME.pgid
+PGID=$(cat /tmp/$GROUP_NAME.pgid)
 
 echo "UOS Browser 已启动:"
 echo "PGID: $PGID"

+ 9 - 5
addin/res/RunScript/startUOSBrower.sh

@@ -28,18 +28,22 @@ pid=$(pgrep startdde)
 . <(xargs -0 bash -c 'printf "export %q\n" "$@"' -- </proc/$pid/environ)
 name=$(ps -o uname= -p "${pid}")
 echo "run in $name"
+
+FILE="/tmp/$GROUP_NAME.pgid"
+rm -f "$FILE"  # 强制删除文件(忽略不存在的情况)
+touch "$FILE"  # 创建新文件
+chmod 666 "$FILE"  # 可选:设置权限
+
 if [ $# -eq 0 ]
 then
-    sudo setsid runuser -u "$name" -- bash -c "$exec &"  > /dev/null 2>&1 &
+    runuser -u  $name -- bash -c "setsid $exec & sudo echo \$! > /tmp/$GROUP_NAME.pgid"
 else
-    sudo setsid runuser -u "$name" -- bash -c "$exec $* &" > /dev/null 2>&1 &
+    runuser -u  $name -- bash -c "setsid $exec $* & sudo echo \$! > /tmp/$GROUP_NAME.pgid"
 fi
 
+PGID=$(cat /tmp/$GROUP_NAME.pgid)
 
 
-PGID=$(ps -o pgid= $! | tr -d ' ')
-echo $PGID > /tmp/$GROUP_NAME.pgid
-
 echo "UOS Browser 已启动:"
 echo "PGID: $PGID"