1.程序后加上“&”,即“./myjob &”,将命令放入到一个作业队列中,可以用命令“jobs”查看。

2.将1中的命令放在“()”中,即“(./myjob &)”,所提交的作业并不在作业列表中,是无法通过jobs查看。

3.使用“nohup”,即 “nohup ./myjob &”,忽略hangup信号,防止shell关闭时程序停掉。

4.使用“setsid”,即“setsid ./myjob”。

5.对已经运行的程序可以用“disown -hmyjob”来使某个作业忽略HUP信号。

6.使用“screen". screen 下的操作会在screen下运行,无法在jobs中查看到。常用的命令有:

a新建一个screen: screen-S   my_screen_name建好后就可以进行所需要的操作了。

b暂时断开screen: Ctrl-a d

c重新打开screen: Ctrl-a screen_id

d查看所有screen状态: screen -ls

e终止screen: screen -S my_screen_name  -Xkill

f在当前窗口新建窗口: Ctrl-a c

g退出当前窗口: exit

h显示所有窗口列表:Ctrl-a w

查看运行的后台进程

1.jobs -l

jobs命令只看当前终端生效的,关闭终端后,在另一个终端jobs已经无法看到后台跑得程序了,此时利用ps(进程查看命令)。

2.ps -ef

ps -aux|grep chat.js

a:显示所有程序;u:以用户为主的格式来显示;x:显示所有程序,不以终端机来区分。

用ps -def | grep查找进程很方便,最后一行总是会grep自己,用grep -v参数可以将grep命令排除掉,如下:

ps -aux|grep chat.js| grep -v grep

再用awk提取一下进程ID,如下:

ps -aux|grep chat.js| grep -v grep | awk '{print $2}'

3.如果某个进程起不来,可能是某个端口被占用

a查看使用某端口的进程

lsof -i:8090 或 netstat -ap|grep 8090

b查看到进程id之后,使用netstat命令查看其占用的端口

netstat -nap|grep 7779

c使用kill杀掉进城后再启动

kill -9 进程号