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

本文介绍在FreeBSD系统中如何管理进程,包括将进程置于后台执行、挂起和恢复进程、查看进程状态等操作方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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启动守护进程相应反应会迟缓一些,不适合用于被密集访问的服务进程

<think>我们正在处理用户的问题:如何在Linux系统中查看nohup.out日志文件。 根据用户提供的引用信息,我们知道nohup.out是由nohup命令生成日志文件,默认位于当前运行目录下。 用户询问查看该日志文件的命令,因此我们需要提供一些常用的查看日志的命令。 常见的查看日志文件的方式包括: 1. 使用cat命令:适合查看较小的文件。 2. 使用tail命令:适合查看日志的尾部,特别是实时查看新增的日志。 3. 使用less命令:适合查看大文件,支持上下翻页、搜索等。 4. 使用head命令:查看日志文件的开头部分。 考虑到nohup.out文件可能会很大(如引用中提到的日志过大的问题),我们通常推荐用cat一次性显示整个文件,而是推荐使用tail或less。 根据引用[1],我们知道nohup.out默认在当前目录下,所以我们需要先进入该目录或者指定路径。 因此,我们可以提供以下命令: 1. 实时查看最新日志(动态刷新): tail -f nohup.out 2. 查看文件末尾的N行(例如100行): tail -n 100 nohup.out 3. 查看文件开头的N行(例如100行): head -n 100 nohup.out 4. 使用less分页查看(可以搜索、翻页): less nohup.out 另外,如果用户已经按照引用[2][3][4]中的方法日志进行了分割,那么可能需要查看分割后的日志文件,此时文件名可能带有日期后缀(如nohup.out.20250522),同样可以使用上述命令查看。 注意:如果nohup.out文件非常大,使用less命令是更安全的选择,因为它会一次性加载整个文件。 最后,我们按照要求生成相关问题。</think>### Linux 查看 nohup.out 日志文件的命令 在 Linux 中查看 `nohup.out` 日志文件(默认位于命令执行的当前目录),常用命令如下: 1. **实时动态查看(推荐)** ```bash tail -f nohup.out ``` - 实时显示日志尾部新增内容,按 `Ctrl+C` 退出[^2][^4] 2. **查看末尾 N 行内容** ```bash tail -n 100 nohup.out # 查看最后100行 ``` 3. **分页查看(大文件适用)** ```bash less nohup.out ``` - 支持上下翻页(方向键)、搜索(`/关键词`)、退出(`q`) 4. **查看文件开头** ```bash head -n 50 nohup.out # 查看前50行 ``` 5. **完整输出(小文件适用)** ```bash cat nohup.out ``` --- ### 注意事项 1. 如果文件过大(如引用中提到的日志膨胀问题),优先使用 `tail -f` 或 `less` 避免内存溢出[^1][^3] 2. 若重定向日志路径(如 `nohup command > /path/custom.log`),需到指定路径查看[^1] 3. 对于分割后的历史日志(如 `nohup.out.20240522`),直接替换文件名即可查看: ```bash less /path/to/nohup.out.20240522 ``` --- ### 日志管理建议 为防止 `nohup.out` 过大(如引用中提到的定时分割方案): - 使用 `logrotate` 工具自动分割压缩 - 或通过 `crontab` 定时执行清理脚本(参考引用[2][^2][^3]): ```bash # 示例脚本:每日备份并清空日志 cp nohup.out nohup.out.$(date +%Y%m%d).bak cat /dev/null > nohup.out ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值