相关疑难解决方法(0)

linux命令setsid

我正在尝试编写一个包装器,它将脚本作为会话负责人执行.我对linux命令的行为感到困惑setsid.考虑这个脚本,称为test.sh:

#!/bin/bash
SID=$(ps -p $$ --no-headers -o sid)
if [ $# -ge 1 -a $$ -ne $SID ] ; then
  setsid bash test.sh
  echo pid=$$ ppid=$PPID sid=$SID parent
else
  sleep 2
  echo pid=$$ ppid=$PPID sid=$SID child
  sleep 2
fi
Run Code Online (Sandbox Code Playgroud)

输出因执行或来源而异:

$ bash
$ SID=$(ps -p $$ --no-headers -o sid)
$ echo pid=$$ ppid=$PPID sid=$SID
pid=9213 ppid=9104 sid= 9104
$ ./test.sh 1 ; sleep 5
pid=9326 ppid=9324 sid= 9326 child
pid=9324 ppid=9213 sid= 9104 parent
$ . …
Run Code Online (Sandbox Code Playgroud)

bash sessionid

12
推荐指数
1
解决办法
2万
查看次数

标签 统计

bash ×1

sessionid ×1