Archive

Posts Tagged ‘linux’

linux nice 命令修改优先等级

October 10th, 2008 No comments

转载于http://blog.csdn.net/thinkerABC/archive/2006/04/09/656236.aspx

【命令】nice — 调整程序运行的优先级

【格式】nice [OPTION] [command [arguments...]]

【说明】

在当前程序运行优先级基础之上调整指定值得到新的程序运行优先级,用新的程序运行优先级运行命令行”command [arguments...]“。优先级的范围为-20 ~ 19 等40个等级,其中数值越小优先级越高,数值越大优先级越低,既-20的优先级最高, 19的优先级最低。若调整后的程序运行优先级高于-20,则就以优先级-20来运行命令行;若调整后的程序运行优先级低于19,则就以优先级19来运行命令行。若 nice命令未指定优先级的调整值,则以缺省值10来调整程序运行优先级,既在当前程序运行优先级基础之上增加10。

若不带任何参数运行命令nice,则显示出当前的程序运行优先级。

例1:

           1. # nice
           2. 0
           3. #
在例1中,不用任何参数执行命令”nice”(见第1行),所以显示出当前的程序运行优先级为0(见第2行)。由此可知系统缺省的程序运行优先级为0。

例2:

           1. # nice nice
           2. 10
           3. #
在例2中,第1个nice命令以缺省值来调整第2个nice命令运行的优先级,既在系统缺省的程序运行优先级0的基础之上增加10,得到新的程序运行优先级10,然后以优先级10来运行第2个nice命令;第2个nice命令显示当前程序运行的优先级为10。

例3:

           1. # nice nice nice
           2. 19
           3. #
在例3中,第1个nice命令以缺省值来调整第2个nice命令运行的优先级,既在系统缺省的程序运行优先级0的基础之上增加10,得到新的程序运行优先级10,然后以优先级10来运行第2个nice命令;第2个nice命令又以缺省值来调整第3个nice命令运行的优先级,既在第2个nice命令运行优先级基础之上再增加10,得到新的程序运行优先级20,但20大于最高程序运行优先级19,所以以优先级19来运行第3个nice命令;第3个nice命令显示当前程序运行的优先级为19。

【参数说明】

-n, –adjustment=ADJUST 指定程序运行优先级的调整值。

优先级的范围为-20~19,当调整后的优先级小于-20时,以优先级-20 来运行程序(见例4);当调整后的优先级大于19时,则以19的优先级运行程序(见例5)。

例4:

           1. # nice -n -21 nice
           2. -20
           3. #
在例4中,以参数“-n”的形式指定程序运行优先级的调整值,系统缺省优先级0加上调整值-21得到新的优先级-21(小于-20),因此程序最终的运行优先级为-20。

例5:

           1. # nice –adjustment=20 nice
           2. 19
           3. #
在例5中,以参数“–adjustment=ADJUST”的形式指定程序运行优先级的调整值,系统缺省优先级0加上调整值20得到新的优先级20(大于19),因此程序最终的运行优先级为19。

注意:在使用“–adjustment=ADJUST”形式指定程序运行优先级的调整值时,中间的等号可以省略。在例5中,也可运行命令行“nice –adjustment 20 nice”。

还可以使用参数“-ADJUST”的形式来指定程序运行优先级的调整值,其中,ADJUST为指定的程序运行优先级调整值,可以为负数,也可以为正数,如例6所示。

例6:

           1. # nice –1 nice
           2. -1
           3. # nice -+1 nice
           4. 1
           5. # nice -1 nice
           6. 1
           7. #
在例6中,参数“–1”、“-+1”和 “-1”中的第一个字符“-”都是语法定义的指定程序运行优先级调整值的标志符,第一个字符“-”之后的值为指定的程序运行优先级的调整值。

在nice命令中,可以同时指定多个程序运行优先级调整值,但只有最后一次指定的数值有效,如例7所示。

例7:

           1. # nice -n -20 –adjustment +19 -3 nice
           2. 3
           3. #
在例7中,通过命令行同时指定了优先级调整值“-20”、“+9”和“3”,但最后生效的程序运行优先级调整值为最后指定的数值“3”。

注意:只有具有root权限的用户才可以调整高程序运行的优先级,既指定的调整值可以为负数,如例8所示。

例8:

           1. # su thinkerABC
           2. $ nice -n -1 nice
           3. nice: cannot set priority: Permission denied
           4. $ nice -n 1 nice
           5. 1
           6. $
在例8中,我们将用户改为非root用户权限的thinkerABC,这时调高程序运行优先级1个级别时操作失败,系统提示权限不足。而调低优先级1个级别时,操作就可以成功。

–help 显示nice命令的帮助信息,详见例9。

例9:

           1. # nice –help
           2. Usage: nice [OPTION] [COMMAND [ARG]…]
           3. Run COMMAND with an adjusted scheduling priority.
           4. With no COMMAND, print the current scheduling priority. ADJUST is 10
           5. by default. Range goes from -20 (highest priority) to 19 (lowest).
           6.
           7. -n, –adjustment=ADJUST increment priority by ADJUST first
           8.      –help display this help and exit
           9.      –version output version information and exit
         10.
         11. Report bugs to <bug-sh-utils@gnu.org>.
         12. #
在例9中,用参数“–help”执行nice命令,则显示该命令的帮助信息,见例9的第2行~第11行。

–version 输出nice命令的版本信息,详见例10。

例10:

           1. # nice –version
           2. nice (GNU sh-utils) 2.0.12
           3. Written by David MacKenzie.
           4.
           5. Copyright (C) 2002 Free Software Foundation, Inc.
           6. This is free software; see the source for copying conditions. There is NO
           7. warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
           8. #
在例10中,用参数“–version”运行nice命令,则显示该命令的版本信息,见例10的第2行~第7行。(注:本例是在Red Hat 8.0下运行的结果。)

参考文献:

[1] Linux man pages

Categories: 软件使用 Tags: ,

Linux中的运行等级(run level)

October 10th, 2008 No comments

什么是运行级(run level)呢?简单的说,运行级就是操作系统当前正在运行的功能级别。
     这个级别从1到6,具有不同的功能。这些级别在/etc/inittab文件里指定。这个文件是init程序寻找的主要文件,最先运行的服务是那些放在/etc/rc.d 目录下的文件。
  不同的运行级定义如下:(可以参考Red Hat Linux 里面的/etc/inittab)
  # 缺省的运行级,RHS 用到的级别如下:
  # 0 – 停机(千万不要把initdefault 设置为0 )
  # 1 – 单用户模式
  # 2 – 多用户,但是没有 NFS
  # 3 – 完全多用户模式
  # 4 – 没有用到
  # 5 – X11
  # 6 – 重新启动 (千万不要把initdefault 设置为6 )
  对各个运行级的详细解释:
  0 为停机,机器关闭。
  1 为单用户模式,就像Win9x 下的安全模式类似。
  2 为多用户模式,但是没有NFS 支持。
  3 为完整的多用户模式,是标准的运行级。
  4 一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置。
  5 就是X11,进到Xwindow系统了。
  6 为重启,运行init 6机器就会重启。
  不同的运行级有不同的用处,也应该根据自己的不同情形来设置。例如,如果丢失了root 口令,那么可以让机器启动进入单用户状态来设置。在启动后的 lilo 提示符下输入:
  init=/bin/sh rw (或者linux 1;linux single)
  就可以使机器进入运行级1 ,并把root文件系统挂为读写。他会跳过所有系统认证,让你使用passwd 程序来改变root口令,然后启动到一个新的运行级

这帖子转的太多了,没有找到源出处。

经常用到的runlevel是3和5,apache和mysql这类常态进程设为3,当用户logout后,还可以继续。

Categories: 软件使用 Tags: