linux批处理文件*.sh的执行往往需要在连接客户端上执行(企业使用云服务器居多)。然而,当脚本文件执行时间过长或操作员当前并不关心命令立即生效的情况下,一直开着连接客户端占用一个窗口,并不是很合适。于是,就可以使用本文提到的方法进行处理:将脚本以后台进程方式运行。
一、直奔主题
(1)需要linux命令以后台进程方式执行的方法很简单,只需要在执行命令之后加上一个&即可。例如:
#获取当前进程状况,并将结果输出到a.txt
ps -ef > a.txt
#以后台方式执行命令
ps -ef > a.txt &
(2)如果还有日志输出的需求,那么可以添加使用nohup命令。例如:
nohup ps -ef > a.txt &
这个命令将执行任务的所有控制台输出记录至当前目录下nohup.out文件中。若该文件不可写,则会写到~/nohup.out中。
二、进程管理
命令开始执行之后,如何停止和查看命令执行情况就成了问题。linux为使用者提供了如下几个命令用于查询进程状态:
job -l
查看当前用户后台执行进程
ps -aux(ps -ef,mac上的ps命令没有x选项)
查看服务器上所有进程
备注:
awk可以提取输出行信息,例如:
ps -aux| grep -v grep | awk
'{print $2}'就可以提取所有进程的进程号(ps第二个参数是进程号)
lsof -i :port
查询占用端口为port的进程
netstat -ano
查看所有端口占用详情(包含进程id)
参见博客:
https://www.cnblogs.com/baby123/p/6477429.html