009-Linux nohup
一、基础概述
1、/dev/null
可以将/dev/null看作"黑洞". 它非常等价于一个只写文件. 所有写入它的内容都会永远丢失. 而尝试从它那儿读取内容则什么也读不到. 然而, /dev/null对命令行和脚本都非常的有用.
用处:
禁止标准输出. 1 cat $filename >/dev/null # 文件内容丢失,而不会输出到标准输出.
禁止标准错误. 2>/dev/null 这样错误信息[标准错误]就被丢弃
2、> 和 >> 、< 、结合&等同于
Linux shell中有三种输入输出,分别为标准输入,标准输出,错误输出,分别对应0,1,2。系统默认值是1,我们可以直接通过输出重定向>(或>>,表示追加)将某种输出重定向到其他地方,如设备,文件
>大于号:将一条命令执行结果(标准输出,或者错误输出,本来都要打印到屏幕上面的)重定向其它输出设备(文件,打开文件操作符,或打印机等等)
<小于号:命令默认从键盘获得的输入,改成从文件,或者其它打开文件以及设备输入: 命令 < 文件" 这是将文件作为命令输入
>> 是追加内容
> 是覆盖原有内容,代表重定向到哪里
echo "aaa">log.txt 含义:将aaa写入log.txt
echo "bbb">>log.txt 含义:追加bbb到log.txt
>log.txt 含义:清空重新写入,待写入
:>log.txt 含义:清空重新写入
ls
>
ls
.log
#标准输出重定向 到ls.log
ls
2>
ls
.log
#标准错误重定向 到ls.log
ls
> /dev/null
#重定向到null设备,相当于直接忽略输出
示例:1>/dev/null 2>&1的含义
1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"
2 表示stderr标准错误
& 表示等同于的意思,2>&1,表示2的输出重定向等同于1
含义:
1>/dev/null 首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,说白了就是不显示任何信息。
2>&1 接着,标准错误输出重定向等同于 标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。
3、& 命令
& 放在命令后面表示设置此进程为后台进程
默认情况下,进程是前台进程,这时此进程(命令执行相当于本质是开启一个进程)就把Shell给占据了,我们无法进行其他操作,对于那些没有交互的进程,很多时候,我们希望将其在后台启动,可以在启动参数的时候加一个'&'实现这个目的。
语法:command &
4、nohup
不挂断地运行命令。no hangup的缩写,意即“不挂断”。忽略所有挂断(SIGHUP)信号
语法:nohup Command [ Arg ... ] [ & ]
nohup 命令运行由 Command参数和任何相关的 Arg参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部。 如果不将 nohup 命令的输出重定向,输出将附加到当前目录的 nohup.out 文件中。如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。
命令:nohup echo </dev/null &>>start.log &
说明:nohup 【echo </dev/null &>>start.log】 &
echo </dev/null & 含义:/dev/null输入给echo 作为后台进程,
>> start.log 追加到start.log 文件中
5、Java
java jar启动
linux中启动 java -jar 后台运行程序
直接用java -jar xxx.jar,当退出或关闭shell时,程序就会停止掉。以下方法可让jar运行后一直在后台运行。
方式一:java -jar xxx.jar &
说明: 在末尾加入 & 符号
方式二、
(1)执行java -jar xxx.jar后
(2)ctrl+z 退出到控制台,执行 bg
(3)exit
完成以上3步,退出SHELL后,jar服务一直在后台运行。
方式三、
nohup java -jar xxxx.jar & (推荐)
将运行的jar 错误日志信息输出到log.file文件中,然后(>&1)就是继续输出到标准输出(前面加的&,是为了让系统识别是标准输出),最后一个&,表示在后台运行。
nohup java -jar app.jar >/home/admin/logs/stdout.log 2>&1 &
相关文章
- mysql 8.0 忘记root密码_linux系统重置root密码
- Linux 脚本更新:实现自动化运维(linux脚本更新)
- Linux自动化:计划任务脚本编写实战(linux计划任务脚本)
- 实现梦想,移动安装Linux系统(在移动硬盘上装linux)
- Linux下修改文件夹名的简单操作(linux修改文件夹名)
- 嵌入式Linux系统下的软件键盘(嵌入式linux软键盘)
- 大杀器:快速修改Linux IP脚本(linux修改ip脚本)
- 数如何修改Linux中的最大线程数(linux修改最大线程)
- Linux静态库和动态库:开发更多应用的新玩法(linux静态库动态库)
- 管理深入Linux:Root权限管理技巧。(linux下root权限)
- Linux程序编写指南:学会构建稳健的程序(如何编写linux程序)
- Linux发展史:从分支到整体(linux的分支)
- Linux分支:从开源到企业级操作系统(linux的分支)
- 轻松访问Linux系统:远程桌面Win连接LINUX(win远程linux)
- 为Linux文件轻松移动位置(linux移动文件位置)
- Linux磁盘挂载检查,完整教程一网打尽(linux查看挂载磁盘)
- 如何在Linux系统中正确配置Java?(linux下配置java)
- Linux编程利器:25个最常用的编程工具汇总(linux下编程工具)
- 解决方法解决 Kali Linux 乱码问题的简单方法(kalilinux乱码)
- Linux模拟试题集:提高Linux技能的最佳练习(linux模拟试题)
- Linux系统环境快速部署指南(linux系统环境部署)
- ABC:开启 Linux 操作系统新时代(abclinux)
- Linux文本界面的实现与切换(linux文本界面切换)
- Swo Linux File Management: How to Navigate Save and Share Files with Ease(swolinux文件)
- Linux内存堆栈段管理机制研究(linux堆栈段)
- 如何在 Linux 中查看 IP 地址?(linux查看ip)
- Linux停止FTP服务:解决方案剖析(linux停止ftp服务)