第一个脚本称为wa.sh,代码如下:
#!/bin/bash
sleep 2
/opt/Citrix/ICAClient/selfservice --icaroot /opt/Citrix/ICAClient
VDI=`pidof wfica | wc -w`
echo $VDI
while [ $VDI -eq 0 ]
do
sleep 1
echo "VDI is not running"
VDI=`pidof wfica | wc -w`
done
echo "gonig to if.sh"
/opt/Scripts/if.sh&
if.sh的内容-第二个脚本
#!/bin/bash
VDI=`pidof wfica | wc -w`
echo $VDI
while [ $VDI -eq 1 ]
do
sleep 1
echo "Vdi is currently running"
VDI=`pidof wfica | wc -w`
done
pkill -u $(whoami)
当来宾用户登录到ubuntu后,第一个脚本由.bashrc调用时,它不会调用第二个脚本-if.sh
其背后的逻辑是,当用户登录到访客会话时,自助服务启动且VDI = 0用户输入正确的凭据并开始其会话VDI = 1,这就是我们需要在VDI变为0时再次开始监视以注销访客会话的时候。
我已经尝试使用源,exec和$()调用第二个脚本,但无济于事。
最佳答案
来宾帐户权限存在问题。将脚本重新编写到守护程序中,现在一切正常。
关于linux - 从终端启动时,Bash脚本可以正常工作,但是当.bashrc调用时,它不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32250914/