日期:2014-05-16  浏览次数:20721 次

shell使用&后并没有执行

#!/bin/csh

while ( 1 )
        echo "hello" >> log.txt
        sleep 5
end



原理上shell执行上面的脚本会生成log.txt文件的,但是我在一台hp-unix上执行时发现使用&符号使之变为后台作业之后便无法生成log.txt,也就是,程序没有执行,执行步骤如下:
./test.sh &
当不加&符号时,程序执行正确,当将此程序拷至其它机子时,没有这类问题,有经验的大神们,说说这是上面问题啊


------解决方案--------------------
先用ps aux 
------解决方案--------------------
 grep 这个shell,看看到底在不在运行
------解决方案--------------------
引用:
引用:先用ps aux 
------解决方案--------------------
 grep 这个shell,看看到底在不在运行
这个shell是在的,我ps了

加&就是放后台执行呀,前台看不到
------解决方案--------------------
应该是nohup ./test.sh &
你掉了nohup
------解决方案--------------------
用完整路径
#!/bin/csh
while ( 1 )
    echo "hello" >> /tmp/log.txt
    sleep 5
end

------解决方案--------------------
引用:
我了个神啊,为啥用完整路径就可以了,求大神解释,
另外是不是该log被生成到了其它的地方?

是的。
因为crontab的环境变量比较特殊。
------解决方案--------------------
 受教了````

------解决方案--------------------
引用:
这个与crontab到底有什么关系,实在不明白,能否说的仔细点,或者指示一下,我要查什么资料呢,谢谢

不需要查资料,记住一句话就行了:
crontab里面尽量使用完整路径
------解决方案--------------------
引用:
引用:这个与crontab到底有什么关系,实在不明白,能否说的仔细点,或者指示一下,我要查什么资料呢,谢谢
不需要查资料,记住一句话就行了:

crontab里面尽量使用完整路径


后台执行与crontab有关吗?以前不知道啊