关于如何把进程变为后台进程

背景:之前做完一个项目,想把它放到云服务器上 24 小时不间断运行,在云服务器上面折腾了不少时间,总算搞定了

因为是 C++ 项目,而且写的服务器也是基于 httplib 库实现的,所以不需要在云服务器上进行配置,只需要在 Linux shell 命令下将生成的可执行文件变为后台进程就可以了

命令如下:

nohup ./ 可执行的程序 > 正确输出日志文件 2>错误输出流 & 

例如

nohup ./system > tmp/right.log 2> tmp/error.log &

为什么这样写呢?因为我们的前台进程一般都会在命令界面进行输出,但是对于后台进程我们需要把输出的内容重定向到一个文件中去.

什么叫重定向,就是我本来要显示在界面,但是通过 shell 命令放到了指定文件中,或者我本来想要让输出到 A 文件,但是可以重定向到 B 文件中

Linux 进程默认情况下会有 3 个缺省打开的文件描述符,分别是标准输入0, 标准输出1, 标准错误2.

0,1,2对应的物理设备一般是:键盘,显示器,显示器

但是按照上面那样写,如果退出 shell 命令依然访问不到

可以把日志写到**.log 中,如下图:

在这里插入图片描述
可以将命令写成这样

./system & >**.log  2>&1
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章