在一个命令中执行并重新启动进程

Mar*_*k D 5 command-line priority nice

有谁知道是否可以在一个命令中执行和重新启动一个进程,即无需使用 ps 命令在进程列表中查找该命令,然后重新启动该特定的 pid。

Sté*_*nez 5

只需使用nice( 而不是renice) 即可。例如:

nice -n 10 command
Run Code Online (Sandbox Code Playgroud)

这将以command低优先级运行。


Tor*_*ian 1

正如我提到的,@glenn-jackman 给了你答案。但为了详细说明一下,如果您希望为该命令赋予更高的优先级,但不打算以 root 身份运行它,您可以使用一个函数(和 sudo):

nice_cmd() {
  PRIORITY=$1 ; shift
  CMD=$1 ; shift
  ${CMD} $@ & cmdpid=$!
  sudo renice -n ${PRIORITY} -p ${cmdpid}
}
Run Code Online (Sandbox Code Playgroud)

然后执行它(这可能会要求您输入用户密码,具体取决于 sudo 的配置方式)

$ nice_cmd -5 vim somefile
$ fg
Run Code Online (Sandbox Code Playgroud)

从另一个终端的顶部,您可以仔细检查好值。