Chinaunix
标题:
shell脚本里不能执行ulimit -n 65535
[打印本页]
作者:
笑着爱你
时间:
2014-03-01 16:09
标题:
shell脚本里不能执行ulimit -n 65535
shell脚本里不能执行ulimit -n 65535 和ulimit -c unlimited。这个为什么使用bash -x查看执行过程也没有报错。
这个ulimit命令为什么不能在shell脚本中执行生效?难道ulimit是特殊的命令?亲高手帮解答
作者:
q1208c
时间:
2014-03-01 16:21
可以执行的. 我经常这么用. 不过, 它只对本shell及子shell有效.
作者:
笑着爱你
时间:
2014-03-01 16:33
什么意思?可以说的更清楚一些么?
我只是想修改当前用户的打开文件数量和打开core的开关。
我想在当前ssh窗口下,运行一个软件,这个软件运行前先运行一个脚本来设置打开文件数和打开core开关。请指点一下,不胜感激
作者:
q1208c
时间:
2014-03-01 16:38
回复
3#
笑着爱你
那没用的.
当前用户的, 必须是在用户 login 时设置才能生效.
打开文件数一般是修改 limits.conf 或者 limits.d 下的相关文件的.
另外, core size 建议是关闭的. 否则, 可能把硬盘空间很快用光的.
作者:
笑着爱你
时间:
2014-03-01 16:46
请教一下。我需要调试软件,所以才需要打开core开关,这个不是重点。重点是如何可以修改配置,让ulimit -n 65535生效就可以了。我也只是针对当前登陆的用户。其他用户我不care的。还请你可否可以给出个建议?
作者:
笑着爱你
时间:
2014-03-01 16:48
我知道这个网站有很多shell脚本的牛人,还请大家多给些建议。我也知道可以修改/root/.bash_profil文件可以让之后的用户使用心得配置,但是我只是想要当前用户可以使用shell脚本可以让ulimit -n 65535命令生效。
作者:
q1208c
时间:
2014-03-01 17:26
回复
5#
笑着爱你
ulimit -n 由于需要修改kernel的一部分参数, 所以, 普通用户无法执行(我刚试了一下). 所以, 才需要修改 系统配置文件, 我在前面已经说过了.
如果你非要本地用户自己去 执行, 你觉得有可能么? 你自己限制自己可以打开多少个文件, 那还限制个P了, 不是等于没有限制?
作者:
笑着爱你
时间:
2014-03-01 19:45
第一我是以root用户登录。
第二我是要测试性能,所以需要修改open file数量的,系统默认是1024个,但是这个数值不能满足我的要求。
我只想我的软件在开始运行后,先执行一个脚本来配置环境,就是需要修改open file数量 ulimit -n 65535.只要可以修改就可以了。
我只想知道有没有办法实现,因为我在shell下是可以修改的的,但是把这个命令放在脚本中执行就不行了。
作者:
linccn
时间:
2014-03-01 20:11
回复
8#
笑着爱你
你回复帖子的时候最好指定一下接收人,不然对方不能及时接收到消息提醒。(一点小小的建议)
作者:
q1208c
时间:
2014-03-03 08:04
回复
8#
笑着爱你
我在第一次回复就告诉你了, 如果是root用户, 是可以执行的, 但它的结果只会影响你当前的shell和它的子shell. 当你的shell脚本退出的时候, 它的作用就结束了.
我不是太明白你为啥总是纠结在这里. 你完全可以在你测试的shell开头的地方设置呀.
作者:
Herowinter
时间:
2014-03-03 10:02
回复
10#
q1208c
我这边实验了下,好像和楼主描述的是一样的。
我有一个C的可执行程序test,接收参数小于2时会core dumped
一个shell 脚本 里面就1句话 ulimit -c unlimited
当我执行脚本后运行可执行程序没有core文件,
当我在终端敲ulimit -c unlimited有core文件。
[masonzhu@rat122 sandbox]$ rm core*
[masonzhu@rat122 sandbox]$ ./test.sh
[masonzhu@rat122 sandbox]$ ./test aaa
2
aaa
Segmentation fault (core dumped)
[masonzhu@rat122 sandbox]$ ls|grep core
[masonzhu@rat122 sandbox]$ ulimit -c unlimited
[masonzhu@rat122 sandbox]$ ./test aaa
2
aaa
Segmentation fault (core dumped)
[masonzhu@rat122 sandbox]$ ls|grep core
core.3767
复制代码
作者:
Herowinter
时间:
2014-03-03 10:22
回复
1#
笑着爱你
好像对子shell无效?
我又试了下,以
source test.sh
或
. ./test.sh
复制代码
运行脚本就可以得到正确结果。
作者:
vc66vcc
时间:
2019-07-31 15:44
脚本用source执行就可以了
lol
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2