找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 2298|回复: 8

求助各位大神 怎么在编译openwrt时添加BusyBox工具top支持NI进程优先级显示?

[复制链接]
发表于 2019-10-29 18:08 | 显示全部楼层 |阅读模式
本帖最后由 liuxichi 于 2019-10-29 18:30 编辑

RT  
  目前使用 BusyBox v1.28.4 版本 ,在使用 top 命令查看时无 NI 进程优先级显示,但看见有玩家发的却有 。自己试着在编译openwrt固件时选上了 top 所有支持 源码是openwrt18.06.4 ,但也只是增加了键盘输入等小部分功能。求教怎么才能在现有的基础上把NI进程优先级显示出来?难道需要编译最新BusyBox并添加全部?但是这样很麻烦,关键自己还不会。。。。。。添加显示NI进程优先级的目的 是为了nice降低ARIA2进程优先,因为每当aria2下载时 老是跳ping。所以想着把aria2降低资源占用,在aria2 1.33版本启动脚本中 添加 procd_set_param command /usr/bin/nice -n 19 "$PROG" 貌似这样不行启动不了 并且luci进程信息都无法显示(更改下才发现多了/usr 没在这个目录下),所以求添加ni进程优先级显示的方法  或 正确使用 nice 降低aria2进程优先级的方法!为感!!!! 请原谅排版
我的恩山、我的无线 The best wifi forum is right here.
发表于 2019-10-29 18:23 | 显示全部楼层
我不知道你说的是什么意思,但是你要不要试试htop。

点评

不支持 这个进阶 命令 ,估计是BusyBox编译中 选择了缺省 最小化  详情 回复 发表于 2019-10-29 18:28
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2019-10-29 18:28 | 显示全部楼层
青烟 发表于 2019-10-29 18:23
我不知道你说的是什么意思,但是你要不要试试htop。

不支持 这个进阶 命令 ,估计是BusyBox编译中 选择了缺省 最小化
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-10-29 19:29 | 显示全部楼层
本帖最后由 scucs 于 2019-10-29 19:30 编辑

aria2要使用nice限制优先级太简单了。。。根本不需要你这样折腾啊。原始的command不要去动。procd风格的init脚本加一行就行了。
  1. procd_set_param nice 19
复制代码

点评

谢谢你的回复 是把上面整句添加为新的一行吗?  详情 回复 发表于 2019-10-29 20:49
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2019-10-29 20:49 | 显示全部楼层
scucs 发表于 2019-10-29 19:29
aria2要使用nice限制优先级太简单了。。。根本不需要你这样折腾啊。原始的command不要去动。procd风格的ini ...

谢谢你的回复 是把上面整句添加为新的一行吗?

点评

对的。跟在procd_set_param command这行之后就行。  详情 回复 发表于 2019-10-29 21:19
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-10-29 21:19 | 显示全部楼层
liuxichi 发表于 2019-10-29 20:49
谢谢你的回复 是把上面整句添加为新的一行吗?

对的。跟在procd_set_param command这行之后就行。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2019-10-29 21:39 | 显示全部楼层
scucs 发表于 2019-10-29 21:19
对的。跟在procd_set_param command这行之后就行。

我刚刚试过了,貌似没效果。你能在你那里试试吗?把正确的脚本贴上来 为感!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-10-29 21:56 | 显示全部楼层
本帖最后由 scucs 于 2019-10-29 22:09 编辑
liuxichi 发表于 2019-10-29 21:39
我刚刚试过了,貌似没效果。你能在你那里试试吗?把正确的脚本贴上来 为感!

这是我的aria2脚本,是老版的脚本,我自己改的,跟新版的配置项可能不一样。不能整个抄过去,只抄那一行就行了。
  1. #!/bin/sh /etc/rc.common

  2. START=99
  3. USE_PROCD=1
  4. NAME=aria2
  5. PROG=/usr/bin/aria2c

  6. append_params() {
  7.     local p; local v; local s="$1"; shift
  8.     for p in $*; do
  9.         config_get v "$s" "$p"
  10.         [ -n "$v" ] && (
  11.             p=$(echo "$p" | sed -e 's|_|-|g');
  12.             echo "$p=$v" >> $config_file
  13.             )
  14.     done
  15. }

  16. section_enabled() {
  17.     local result
  18.     config_get_bool result "$1" 'enabled' 0
  19.     [ $result -eq 1 ]
  20. }

  21. option_disabled() {
  22.     local result
  23.     config_get_bool result "$1" "$2" 1
  24.     [ $result -eq 0 ]
  25. }

  26. aria2_start() {
  27.     local s="$1"
  28.     local user
  29.     local nice
  30.     local mem_percentage
  31.     local USE

  32.     section_enabled "$s" || return 1
  33.     config_get dir "$s" 'dir'

  34.     [ -n "$dir" ] || {
  35.         logger -t ARIA2C "Please set downlod dir"
  36.         return 1
  37.     }

  38.     [ -d "$dir" ] || {
  39.         logger -t ARIA2C "Please create download dir: $dir"
  40.         return 1
  41.     }

  42.     config_get config_dir "$s" 'config_dir' '/var/etc/aria2'
  43.     config_get user "$s" 'user' 'root'
  44.     config_get nice "$s" 'nice' 0
  45.     config_get mem_percentage "$s" 'mem_percentage' '50'

  46.     local MEM=$(sed -ne 's!^MemTotal:[[:space:]]*\([0-9]*\) kB$!\1!p' /proc/meminfo)
  47.     if test "$MEM" -gt 1;then
  48.         USE=$(expr $MEM \* $mem_percentage \* 10)
  49.     fi

  50.     config_file="$config_dir/aria2.conf"
  51.     session_file="$config_dir/aria2.session"
  52.     dht_file="$config_dir/dht.dat"
  53.     log_file="$config_dir/aria2.log"

  54.     [ -d "$config_dir" ] || {
  55.         mkdir -m 0755 -p "$config_dir"
  56.         touch "$config_file"
  57.     }

  58.     touch "$session_file" # create session file

  59.     echo -e "enable-rpc=true\nrpc-allow-origin-all=true\nrpc-listen-all=true\nquiet=true" > $config_file
  60.     echo -e "continue=true\ninput-file=$session_file\nsave-session=$session_file" >> $config_file

  61.     option_disabled "$s" 'enable_dht' || echo "dht-file-path=$dht_file" >> $config_file
  62.     option_disabled "$s" 'enable_log' || {
  63.         [ -f "$log_file" ] && echo > $log_file # if log file exist, clear it
  64.                 echo -e "log=$log_file" >> $config_file
  65.         }

  66.     # if user is set, change dir owner
  67.     [ -z "$user" ] || {
  68.         chown -R $user:$user $config_dir
  69.         chown -R $user:$user $dir
  70.     }

  71.     append_params "$s" \
  72.         file_allocation bt_enable_lpd enable_dht rpc_user rpc_passwd rpc_listen_port dir bt_tracker disk_cache \
  73.         max_overall_download_limit max_overall_upload_limit max_download_limit max_upload_limit max_concurrent_downloads \
  74.         max_connection_per_server min_split_size split save_session_interval follow_torrent listen_port bt_max_peers \
  75.         peer_id_prefix user_agent rpc_secret log_level
  76.    
  77.     config_list_foreach "$s" extra_settings append_extrasettings

  78.     procd_open_instance "${NAME}.${s}"
  79.     procd_set_param command "$PROG"
  80.     procd_append_param command --conf-path="${config_file}"

  81.     procd_set_param stderr 1
  82.     procd_set_param user $user
  83.     procd_set_param group $user
  84.     procd_set_param nice $nice
  85.     procd_set_param respawn

  86.     if test -z $USE; then
  87.         procd_set_param limits core="0 0"
  88.     else
  89.         procd_set_param limits core="0 0" as="$USE $USE"
  90.         logger -t ARIA2C "Starting with $USE virt mem"
  91.     fi

  92.     procd_set_param file "$config_file"
  93.     [ -n "$user" ] && \
  94.         procd_set_param user "$user"

  95.     procd_add_jail "${NAME}.${s}" log
  96.     procd_add_jail_mount "$config_file"
  97.     procd_add_jail_mount_rw "$dir" "$config_dir" "$log_file"
  98.     procd_close_instance
  99. }

  100. append_extrasettings() {
  101.     echo "$1" >> $config_file
  102. }

  103. start_service() {
  104.     config_load "$NAME"
  105.     config_foreach aria2_start "aria2"
  106. }

  107. service_triggers() {
  108.     procd_add_reload_trigger "$NAME"
  109. }
复制代码


点评

嗯 我尝试 改改看 谢谢 帮助!!  详情 回复 发表于 2019-10-29 23:30
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2019-10-29 23:30 | 显示全部楼层
scucs 发表于 2019-10-29 21:56
这是我的aria2脚本,是老版的脚本,我自己改的,跟新版的配置项可能不一样。不能整个抄过去,只抄那一行 ...

嗯 我尝试 改改看  谢谢 帮助!!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-16 18:25

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表