Chinaunix

标题: bash中存放输出的buf一般多大? [打印本页]

作者: arnk    时间: 2010-01-01 13:21
标题: bash中存放输出的buf一般多大?
shell 中如果不将输出重定向到stdout,它应该会存放到一个buf,想问一下这个buf一般多大?

我的bash版本:
GNU bash, version 4.0.33(1)-release (i486-pc-linux-gnu)
作者: 寂寞烈火    时间: 2010-01-01 16:01
一般来说在linux下缓冲区是系统自动调整的。楼主说不输出到标准输出, 实际上就是用变量的形式保存。那么取决于你内存的大小, 或者参考free,sysctl等工具
作者: Shell_HAT    时间: 2010-01-01 18:48
楼主遇到过buf不够大的情况?
作者: arnkore    时间: 2010-01-02 01:12
标题: 回复 #3 Shell_HAT 的帖子
问题的起源是这样的。
我设置了自动定时任务
*/8 * * * * mplayer somemusic.mp3
就是每隔8分钟播放somemusic,但是问题来了,每次定时任务执行的时候,somemusic只响了几秒就没了。
而我将定时任务改为
*/8 * * * * mplayer somemusic.mp3 > /dev/null 2>&1
or
*/8 * * * * mplayer somemusic.mp3 > /dev/null
somemusic都能成功播放完成。所以我猜测是不是因为buf不够导致了somemusic只想几秒就挂。
ps:我将输出重定向一个file(代替/dev/null)发现输出确实不小。
作者: 寂寞烈火    时间: 2010-01-02 01:23
原帖由 arnkore 于 2010-1-2 01:12 发表
问题的起源是这样的。
我设置了自动定时任务
*/8 * * * * mplayer somemusic.mp3
就是每隔8分钟播放somemusic,但是问题来了,每次定时任务执行的时候,somemusic只响了几秒就没了。
而我将定时任务改为
...

⊙﹏⊙b汗, 我一直以为, 只有标准输出/标准错误输出可以重定向。。。, 我觉得是不是把它丢在后台也许可以吧?
作者: 大蚂蚁    时间: 2010-01-02 06:58
程序都要有输入和输出。

你读一个文件,文件是输入,屏幕是输出;你写一个文件,你输入的东西是输入,你写的文件是输出;

任何情况下,输入或者输出不可用的时候,程序都是不能成功运行的。

所以 crontab里面的程序,再你操作电脑的时候,默认的输出可能没了,所以,程序中止了。

以上只是猜测。
作者: arnk    时间: 2010-01-02 11:41
标题: 回复 #6 大蚂蚁 的帖子
你倒是提醒了我,cron默认把输出都mail给root了。
而我是在ubuntu 9.10下测试的。
ubuntu下root有没有mail不清楚。照这样看来应该是没有的。
笨兔把/boot/grub/menu.lst改成 /boot/grub/grub.cfg
格式变了好多。
/etc/aliases死活在笨兔下找不到。

回到centos一测试什么问题都没有。fuck!




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2