我有一个作为 gearman 用户运行的进程,我想进行更改open files以避免出现这个令人讨厌的错误:
错误 2014-09-12 17:49:14.000000 [ main ] 接受(打开的文件太多)-> libgearman-server/gearmand.cc:788
如何在 Ubuntu 上以其他用户身份运行 ulimit 并更改打开的文件?我目前没有以 gearman 身份登录,但我有 root 访问权限。我尝试这样做:
su gearman --shell /bin/bash --command "ulimit -n"
Run Code Online (Sandbox Code Playgroud)
$ su gearman --shell /bin/bash --command "ulimit -n"
Password:
$
Run Code Online (Sandbox Code Playgroud)
小智 27
重新审视这个只是因为我在谷歌搜索中偶然发现了它并发现Tony的评论很有用:虽然限制确实是在流程级别设置的,但您确定特定用户的限制的方式是找到他们已经启动的进程,然后检查proc/${id}/limits.
具体来说:
$ ps -u username # look up processes owned by user
$ sudo grep 'open files' /proc/${id}/limits # find "Max open files" line for process ID
Run Code Online (Sandbox Code Playgroud)
当您运行该ulimit命令时,它只会影响正在运行的进程ulimit(shell)和所有子进程。因此,当您运行 时bash --command "ulimit -n",它只会影响该 bash 实例的打开文件数,然后 bash 退出,因此不会影响未来的进程。
因此,为了完成您想要的操作(增加实际进程的打开文件限制),编辑limits.conf以提高特定齿轮用户的打开文件限制可能更有意义。
请参阅其他地方或此处的limits.conf 示例。
| 归档时间: |
|
| 查看次数: |
96082 次 |
| 最近记录: |