第一个脚本称为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/

10-15 05:12