我有一个 linux 应用程序,它使用修改后的rpath
(在安装期间设置)加载 *.so 库。它还需要以实时优先级运行。
为了获得实时优先级,它这样做:
sched_param sched;
sched.sched_priority = 70;
sched_setscheduler(getpid(), SCHED_FIFO, &sched);
但是sched_setscheduler
,它是一种特权方法,受CAP_SYS_NICE
功能保护。因此,为了在不以 root 身份运行的情况下获得实时优先级,我添加setcap
到我的postinst
:
setcap cap_sys_nice+ep /path/to/myapp
但是,linux 决定rpath
如果程序具有额外的功能,则不应允许它们从中加载库。
有没有办法让我设置自己的优先级并加载 rpath 库?
注意:我更喜欢在应用程序或postinst
. 我想避免将脚本部署为启动应用程序的唯一方法。我知道sudo chrt -f -p 70 $!
可以从脚本中做到这一点。