CentOS下后台运行程序的方法

参考链接:https://www.cnblogs.com/loveLands/articles/10809333.html

方法一:&

在运行命令后面加上&,程序就会放到后台执行,不会占用终端,比如

$ ./udp_srv.sh &

udp_srv.sh假设是一个网络服务程序

方法二:nohup

上面的方法在用户关闭终端时会结束运行,采用nohup的方法可以使终端关闭时依旧保持运行,适合执行一些服务的运行,比如

$ nohup ./udp_srv.sh &

nohup表示no hangup,在终端关闭时程序依旧保持运行。缺省情况下,该程序所有的输出会导出到nohup.out文件,可以通过指令使输出重定向到指定的文件,如

$ nohup ./udp_srv.sh > udp_srv.log 2>&1 &

输出就重定向到了udp_srv.log文件,其中2>&1表示将错误输出重定向到标准输出,最后一个&依旧表示后台运行

### 如何在CentOS中让服务在后台运行 对于希望在后台持续运行的服务,在CentOS中有多种方法可以实现这一点。通常的做法是通过`systemctl`命令来管理这些服务,这适用于大多数现代版本的CentOS。 #### 使用 `systemd` 和 `systemctl` 为了使应用程序作为守护进程启动并保持在后台运行,创建或编辑相应的`.service`文件是一个常见的方式[^1]。此配置文件定义了如何启动、停止以及重启该应用,并指定了它应该始终处于活动状态。一旦设置了这个单元文件,则可以通过下面的方法控制服务: ```bash sudo systemctl start my_service.service # 启动服务 sudo systemctl enable my_service.service # 设置开机自启 sudo systemctl status my_service.service # 查看服务状态 ``` #### 利用 `nohup` 或者 `&` 符号 如果只是临时性的需求,不想编写复杂的初始化脚本,那么可以直接利用`nohup`加上`&`符号组合来执行程序,这样即使关闭终端窗口之后也能继续工作。例如: ```bash nohup command &> output.log & ``` 这里`command`代表要执行的具体指令,而`output.log`用于保存标准输出和错误日志。这种方式简单易行但对于长期稳定运行的应用来说并不是最佳实践[^2]。 #### 配置 Nginx 为例 当构建像Nginx这样的软件时,进入解压后的源码目录后,会发现有一个名为`configure`的可执行文件用来定制编译选项。完成安装以后,一般都会提供一个默认的服务管理方案以便于将其设置成系统级服务从而自动置于后台运作[^3]: ```bash cd /path/to/nginx-1.20.0/ ./configure --prefix=/usr/local/nginx \ --sbin-path=/usr/sbin/nginx \ --conf-path=/etc/nginx/nginx.conf \ --error-log-path=/var/log/nginx/error.log \ --http-log-path=/var/log/nginx/access.log \ --pid-path=/var/run/nginx.pid \ --with-http_ssl_module make && make install ``` 上述过程中的路径可以根据实际环境调整。安装完成后就可以按照前面提到的方法注册为systemd服务或者直接使用`nohup`方式启动了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值