11

Linux POSIX mqueue 実装を使用していますが、問題があります。現在のカーネルでは、メッセージの最大サイズは 1MB ですが、制限を設ける必要はありません。

man mq_overviewプロセスが特権 (CAP_SYS_RESOURCE機能を持つプロセス) である場合、制限はありません。root によって実行されたプロセスには既に特権が与えられていると思っていましたが、「メッセージが長すぎます」というエラーが引き続き表示されます (私のメッセージは 2MB あります)。

CAP_SYS_RESOURCEプロセスに機能を追加するにはどうすればよいですか?

4

3 に答える 3

8

実行中のプロセスに設定できるかどうかはわかりませんが(そうではないと思います)、 # setcap 'CAP_SYS_RESOURCE=+ep' /path/to/executable(スーパーユーザーとして)実行可能ファイルにCAP_SYS_RESOURCE機能を付与できます。この例では、+epターンダウンがレイズに変わり、CAP_SYS_RESOURCE能力が許可され効果的になります。ただし、man ページcapabilities(7)setcap(8)は、詳細情報の有用な情報源です。

于 2013-03-13T15:52:42.157 に答える
3

このファイルの最大メッセージ サイズの上限を変更できます /proc/sys/fs/mqueue/msgsize_max 動作することを願っています

于 2011-08-05T09:24:39.173 に答える
1

関数でオプションRLIMIT_MSGQUEUEを試してください。intsetrlimit(int resource、const struct rlimit * rlim);

マニュアルページ:http ://www.kernel.org/doc/man-pages/online/pages/man2/setrlimit.2.html

:)

于 2010-09-18T01:11:59.437 に答える