前言
我们运行某些命令的时候,它会默认在前台执行。如果要进行其他操作,则需要先停掉此程序。然后就蛋疼了。
解决
碰到这种情况,我们可以使用"nohup"命令和"&"命令符来进行后台执行。
例如,我要启动mysql进程,命令如下:
mysql -uroot -p --defaults-file=/etc/my.cnf
它会在前台运行,我要进行其他操作,则需要ctrl+c退出来再做其他事。这时我为了保证其在后台运行,就可以在命令的头部加"nohup",尾部加"&"来保证其后台运行,命令如下:
nohup mysql -uroot -p --defaults-file=/etc/my.cnf &
如果有报错,它会在命令执行后1-2s报出来;如果没有,它会报出一个进程号。
无论执行是否成功,你都可以进行其他操作。
这时,命令执行的命令会导入到一个叫nohup.out的文件中。这个nohup.out路径有优先级排序,分别是:
-
命令中指定的位置。例如:
nohup mysql -uroot -p --defaults-file=/etc/my.cnf >> /var/log/nohup.out &
则命令执行的文件将会被重定向到/var/log/nohup.out。
- 本目录下。
若不指定重定向文件,在当前用户有本目录写权限的情况下,则nohup会默认在本目录下创建nohup.out文件。
- 本用户的家目录下。
若不指定重定向文件,在当前用户有本目录写权限的情况下,则nohup会默认在本用户的家目录下创建nohup.out文件
同时,频繁使用nohup会使得nohup.out文件很容易变大,所以需要定期清理。可使用
> /path-to-nohup/nohup.out #将空格写入nohup.out文件中,以达到清理目的。
来清理。
后记:
至于更加高级的操作,我也还在思考做。以后贴文细讲。
About me: 资深大猪蹄子
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)