我在嵌入式设备上有一个脚本,如果用户通过 ssh 会话登录,它会调用屏幕启动......
#!/bin/sh
SCREENRUNNING=`pgrep SCREEN`
if [ -z "$SCREENRUNNING" ]; then
echo "Screen not running so let's start the Master session
sleep 2
screen -dmS Master
sleep 2
screen -x root/Master
else
echo "Screen is already running let's connect to existing session"
sleep 2
screen -x root/Master
fi
但是,即使已分离,这也会保持调用脚本处于活动状态,直到屏幕会话退出为止。
我想要做的是让调用脚本完成并退出,同时屏幕会话保持活动状态。我尝试过守护进程化屏幕 -x 行并在屏幕 -x 行末尾添加 &,但这两种方法都无法正常工作。
有想法吗?
如果您不让脚本完成并退出,则每次重新登录设备时都会得到孤立的实例,即每次登录都会生成一个脚本实例,该实例只有在屏幕完全关闭时才会退出。
因为它是嵌入式设备,所以 nohup 不可用。
答案1
尝试在命令和 & 之前使用 nohup:
nohup command &