对Linux进程的管理是我们经常遇到的,如何查看一个进程的状态?如何把一个后台的进程调至进程执行?如何杀死一个进程…看了本文后,你将会全部掌握!
1. nohup
nohup的用法:
- 用途:不挂断地运行命令。
- 语法:
nohup Command [ Arg … ] [ & ]
- 在默认情况下(非重定向时),会输出一个名叫 nohup.out 的文件到当前目录下。
- 如果当前目录的 nohup.out 文件不可写,输出重定向到
$HOME/nohup.out
($HOME
为用户主目录)文件中。 - 如果没有文件能创建或打开以用于追加,那么 Command 参数指定的命令不可调用。
- 参数说明:
- Command:要执行的命令。
- Arg:一些参数,可以指定输出文件。
- &:让命令在后台执行,终端退出后命令仍旧执行。
现在,来尝试一下!
创建my.sh文件,文件内容如下:
#!/bin/bash
echo "hello"
echo "----------"
sleep 20 #休眠20s
echo "world"
执行:
[root@layne bashdir]# chmod +x my.sh # 给my.sh增加执行权限
[root@layne bashdir]# nohup ./my.sh &
[1] 2064 #这个2064就是my.sh进程的id
[root@layne bashdir]# nohup: ignoring input and appending output to `nohup.out' #看到这个信息说明运行成功,再按一下回车即可回到当前shell命令行
[root@layne bashdir]# cat nohup.out
hello
----------
[root@layne bashdir]# cat nohup.out #等待20s再次查看
hello
----------
world
[1]+ Done nohup ./my.sh
以下命令在后台执行 my.sh 脚本,并重定向输入到 my.log 文件: