FreeBSD可以同时运行多个进程,在shell下直接输入命令后,shell将进程放到前台执行。如果要将进程放到后台执行,需要在命令行的结尾加上一个 “&” 符号。下面的命令从后台执行,从ftp.isc.org下载文件。

$ fetch ftp://ftp.isc.org/pub/inn/inn-1.7.2.tar.gz &

当程序已经在前台执行的时候,可以使用^Z将这个程序挂起,暂停执行。然后可以使用bg命令将这个挂起的程序放到后台执行,或者使用fg将某个在后台或挂起的进程放到前台执行。

当在后台运行了程序的时候,可以用jobs命令来查看后台作业的状态。在有多个后台程序时,要使用来参数的fg命令将不同序号的后台作业切换到前台上运行。

$ jobs

[1]+ Running fetch ftp://ftp.isc.org/pub/inn/inn-1.7.2.tar.gz &

$ fg %1

fetch ftp://ftp.isc.org/pub/inn/inn-1.7.2.tar.gz

在启动了多个程序之后,可以使用ps命令来查看这些进程及其状态。

$ ps

PID TT STAT TIME COMMAND

501 p2 Ss 0:00.24 -bash (bash)

988 p2 R+ 0:00.00 ps

765 p3 Is+ 0:00.28 -bash (bash)

230 v0 Is+ 0:00.14 -bash (bash)

显示的结果包括进程的标识号PID,控制终端TT(p0表示控制终端为ttyp0),进程的状态STAT,进程使用的处理器时间TIME和具体的命令。

可以给ps命令加上参数,来获得更多的输出内容,以下命令将输出系统中所有的进程:

$ ps waux

USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND

wb 989 0.0 0.4 400 236 p2 R+ 5:48PM 0:00.00 ps -aux

root 1 0.0 0.1 496 72 ?? Is 10:12PM 0:00.02 /sbin/init —

root 2 0.0 0.0 0 0 ?? DL 10:12PM 0:07.05 (pagedaemon)

root 3 0.0 0.0 0 0 ?? DL 10:12PM 0:00.20 (vmdaemon)

root 4 0.0 0.0 0 0 ?? DL 10:12PM 0:04.27 (syncer)

root 27 0.0 0.0 204 0 ?? IWs – 0:00.00 (adjkerntz)

root 91 0.0 0.5 820 328 ?? Is 2:12PM 0:00.82 syslogd

daemon 100 0.0 0.0 792 0 ?? IWs – 0:00.00 (portmap)

root 131 0.0 0.3 864 164 ?? Is 2:12PM 0:00.06 inetd

root 134 0.0 0.3 980 192 ?? Is 2:12PM 0:00.11 cron

root 138 0.0 0.6 1252 380 ?? Is 2:12PM 0:00.11 sendmail: accepti

wb 230 0.0 1.1 1540 668 v0 Is+ 2:12PM 0:00.14 -bash (bash)

root 231 0.0 0.0 824 0 v1 IWs+ – 0:00.00 (getty)

root 232 0.0 0.0 824 0 v2 IWs+ – 0:00.00 (getty)

root 500 0.0 0.9 876 524 ?? Ss 4:19PM 0:01.78 telnetd

wb 501 0.0 1.4 1540 888 p2 Ss 4:19PM 0:00.24 -bash (bash)

root 698 0.0 1.5 1644 900 ?? Is 4:49PM 0:00.02 /usr/local/sbin/s

root 700 0.0 1.2 1308 748 ?? Ss 4:49PM 0:00.22 /usr/local/sbin/n

root 702 0.0 3.4 2900 2112 ?? S 4:49PM 0:00.32 /usr/local/sbin/s

root 764 0.0 0.9 880 540 ?? Is 5:10PM 0:00.22 telnetd

wb 765 0.0 1.7 1536 1052 p3 Is+ 5:10PM 0:00.28 -bash (bash)

root 0 0.0 0.0 0 0 ?? DLs 10:12PM 0:00.02 (swapper)

当用户启动一个进程的时候,这个进程是运行在前台,使用与相应控制终端相联系的标准输入、输出进行输入和输出。即使将进程的输入输出重定向,并将进程放在后台执行,进程仍然和当前终端设备有关系。正因为如此,在当前的登录会话结束时,控制终端设备将和登录进程相脱离,那么系统就向所有与这个终端相联系的进程发送SIGHUP的信号,通知进程线路已经挂起了,如果程序没有接管这个信号的处理,那么缺省的反应是进程结束。因此普通的程序并不能真正脱离登录会话而运行进程,为了使得在系统登录后还可以正常执行,只有使用命令nohup来启动相应程序。

从上面的ps的输出结果可以看出,有些程序没有控制终端,这些程序通常是一些后台进程。使用命令nohup当然可以启动这样的程序,但nohup启动的程序在进程执行完毕就退出,而常见的一些服务进程通常永久的运行在后台,不向屏幕输出结果。在Unix中这些永久的后台进程称为守护进程(daemon)。守护进程通常从系统启动时自动开始执行,系统关闭时才停止。如果偶然某个守护进程消失了,那么它提供的服务将不再能被使用。

在守护进程中,最重要的一个是超级守护进程inetd,这个进程接管了大部分网络服务,但并不是对每个服务都自己进行处理,而是依据连接请求,启动不同的服务程序与客户机打交道。inetd支持网络服务种类在它的设置文件/etc/inet.conf中定义。inet.conf文件中的每一行就对应一个端口地址,当inetd接受到连接这个端口的连接请求时,就启动相应的进程进行处理。使用inetd的好处是系统不必启动很多守护进程,从而节约了系统资源,然而使用inetd启动守护进程相应反应会迟缓一些,不适合用于被密集访问的服务进程

linux nohup不生成日志,linux重定向及nohup不输出的方法相关推荐

  1. linux 清空catalina.out日志 不需要重启tomcat(五种方法)【转】

    1.重定向方法清空文件 [root@localhost logs]# du -h catalina.out  查看文件大小 17M catalina.out [root@localhost logs] ...

  2. linux nohup不生成日志,nohup不输出日志信息的方法,及linux重定向学习

    起因 最近使用nohup创建了一个后台进程,默认日志输出到了nohup.out文件中,程序跑起来也就没再管,过了大约一周,发现硬盘空间不够了,于是查找原因,发现这个nohup.out文件已经到了70G ...

  3. linux通过时间查询日志,linux按时间查询日志

    在系统应用集中部署的时候,很多日志因为太多难以定位,获取某段时间的日志是对运维人员非常关键的事情. 一.sed查看某时间段到现在的系统日志: sed  -n  '/May 20 17/,$p'   / ...

  4. linux 进程被杀日志,Linux查看日志和关闭、杀***进程命令

    1  -----Linux查看tomcat日志命令: cd    /:切换到根目录 ll:查看根目录下的文件 cd    /data/kafu/log:切换到日志目录 ll:查看日志目录下的文件 ta ...

  5. nohup 不生成日志_js页面触发chargeRequest事件和Nginx获取日志信息

    承接上一篇文档<js页面触发pageView和event事件编写> chargeRequest事件 该事件的主要作用是记录用户产生订单的行为/数据 思路图 Keys添加信息 服务器名称列表 ...

  6. 2345好压内部查看器编辑log4.properties引起的linux下无法生成日志文件的Bug

    今天遇到一个千古奇bug,估计这个bug很少有人会遇到! 下午的时候发现部署在linux下web工程无法生成log4j的日志文件,起初我以为是log4j.properties配置项的问题导致的,反复确 ...

  7. linux切割日志方法,Linux下nginx生成日志自动切割的实现方法

    1.编辑切割日志的 shell 程序,目录自定 #vi /data/Nginx/cut_Nginx_log.sh 输入代码: #!/bin/bash # This script run at 00:0 ...

  8. Linux启动屏幕打印日志,linux启动时如何在屏幕上找到文本显示?这...

    只有内核本身的输出才是dmesg. 另一个输出来自init进程及其启动的服务.在GNU / Linux上常用的init有很多不同的实现(其中一些不称为"init"),它们的行为可能 ...

  9. linux 校验文件生成,在Linux中了解如何使用MD5校验和生成和验证文件

    校验和是用作在数据正确数字的总和,其可以稍后用于存储或传输期间检测数据中的错误的一个数字.MD5( 消息摘要5)的款项可以用作校验和,以验证文件或字符串在Linux的文件系统 . MD5校验和是128 ...

最新文章

  1. 心得丨在人工智能领域, 开发人员需要什么技能?
  2. linux内核报告,Linux升级内核报告.docx
  3. Xshell上传、下载文件到linux
  4. TCP三次握手、糊涂窗口、粘包问题
  5. NSArray 与 NSMutableArray 的排序
  6. SENet(Squeeze-and-Excitation Networks)
  7. 创建存储过程时出现的This function has none of DETERMINISTIC, NO SQL解决办法
  8. sequelize模型关联_使用Sequelize来计算关联模型中的行数(其中id ='x')
  9. C#的排序算法以及随机产生不重复数字的几个Demo
  10. 算法和数据结构---排序---插入排序
  11. C# Dictionary 使用;增加、移除的各种方法
  12. Red Hat Linux 启动流程图
  13. windows 8授权概览
  14. donet 微服务开发 学习-使用docker部署Asp.net core web应用程序
  15. 脑与认知科学基础(期末复习)
  16. 墨画子卿第二章第4节:三招
  17. mysql with,mysql+with
  18. C++文件服务器项目—FastCGI—4
  19. 手把手教你搭建STM32MP1开发环境
  20. 【读书分享】吴军:《信息传》

热门文章

  1. 计算机常用主题词,标引主题词的目的是( )。A.反映文件的全部内容B.便于计算机检索和管理C.供归_考题宝...
  2. php mysql 图像_php-向/从MySQL数据库插入/查看图像
  3. zabbix巡检脚本
  4. Docker教程介绍
  5. 修改win10我的文档下载等移动别处
  6. 查看某个文件是否正在被修改
  7. Python 换行符
  8. Hadoop Mapreduce分区、分组、二次排序过程详解[转]
  9. (转)在Myeclipse中查看android源码就是这么easy
  10. ASP.NET中常用的26个优化性能方法(1-10)