nohup 的定义
man nohup
nohup - run a command immune to hangups, with output to a non-tty
运行一条命令,对挂起免疫,输出到非tty。
& 的特点
- 当前任务会放在后台进行(ctrl c不会终止)
- 如果有输出会看到输出
- 一旦退出ssh session,则任务自动停止(使用exit退出)
nohup (No hangups 的缩写) 的特性
- 当前任务运行起来,不能看到输出日志,可以通过nohub.out查看
- 使用ctrl c会终止运行
- 退出session会保持运行(前提是在运行!)
这下来看,这两货各属阴阳的,没一个完美的。于是,嘿嘿,来个阴阳合体。
//默认把标准输出重定向追加到文件 nohup.out
nohup COMMAND &
nohup COMMAND > /path/to/my.log 2>&1 &
大功告成。
参考资料
//查看当前终端发起的正在运行的后台进程
jobs -l
ps -ef
ps -aux | grep ./tt
// a:显示所有程序
// u:以用户为主的格式来显示
// x:显示所有程序,不以终端机来区分
// 用ps -def | grep查找进程很方便,最后一行总是会grep自己
// 用grep -v参数可以将grep命令排除掉
ps -aux | grep ./tt | grep -v grep
// 再用awk提取一下进程ID
ps -aux | grep ./tt | grep -v grep | awk '{print $2}'
// 查看使用某端口的进程
lsof -i:8080
netstat -ap | grep 8080
//查看到进程id之后,使用netstat命令查看其占用的端口
netstat -nap | grep 7779
//使用kill杀掉进城后再启动
kill -9 进程号