网站首页 > 技术教程 正文
前言
今天在制作docker镜像的时候,需要让nginx在前台执行,但是在nginx执行之后,需要获取nginx端口,添加加一个针对nginx监控的程序,而且要求如果nginx挂掉,这个容器就必须销毁。
思路
在bash中,后台执行程序可以在命令参数之后加上 & 即可,如果需要继续前台执行 fg jobid。
例如下面写一个enterypoint脚本
#!/bin/bash
/opt/nginx/sbin/nginx -g "daemon off;" &
PORT=$(ss -lntpd | grep '\"nginx\"' | awk '{split($5,a,":");print a[2]}'|head -n 1)
/nginx-monitor http://localhost:$PORT/status &
fg 1 >> /data/startup.log 2>&1
发现容器启动之后就关闭了,说明脚本有问题,没有程序在前台执行导致容器直接退出。
通过日志文件发现有报错:fg: no job control
通过man bash查看帮助
找到JOB CONTROL
A user typically employs this facility via an interactive interface supplied jointly by the operating system kernel's terminal driver and bash.
用户一般在交互的人机界面中使用这种功能。界面是由系统的终端驱动和 bash 共同提供的。
上面可以看错需要有界面才能控制,那在脚本里面有可能调用吗?继续往下查找JOB关键字,可以看到有一个set -m参数,可以设置monitor模式
-m Monitor mode. Job control is enabled. This option is on by default for interactive shells on systems that support it (see JOB CONTROL above). Background processes run in a separate process group and a line containing their exit status is printed upon their completion.
monitor模式。作业控制被启用。在支持这个选项的系统中,它在交互 shell中是默认启用的 (参见上面的 JOB CONTROL 作业控制)。后台进程在单独的进程组中运行,结束时将打印出包含它们退出状态的一行信息。
修改后的脚本
#!/bin/bash
set -m
/opt/nginx/sbin/nginx -g "daemon off;" &
PORT=$(ss -lntpd | grep '\"nginx\"' | awk '{split($5,a,":");print a[2]}'|head -n 1)
/nginx-monitor http://localhost:$PORT/status &
fg 1 >> /data/startup.log 2>&1
猜你喜欢
- 2024-10-16 LNMP环境搭建-nginx(lnmp搭建后怎么做网站)
- 2024-10-16 进阶必备 | Linux系统管理工具 supervisor 详解,代码齐全可复制
- 2024-10-16 K8S 之 Ingress-nginx 源码解析(k8s nginx配置)
- 2024-10-16 编排系统K8S Ingress-nginx源码解析
- 2024-10-16 让博客Docker化,轻松上手Docker(博客登录界面)
- 2024-10-16 「这些都不知道你就是个弟弟」Docker常用命令
- 2024-10-16 容器技术:Podman 与 RESTful 接口
- 2024-10-16 Docker:网络模式详解(docker五种网络模式)
- 2024-10-16 k8s日志收集 多pod挂载不同目录方案
- 2024-10-16 Docker部署前端Web项目(docker部署webdav)
你 发表评论:
欢迎- 最近发表
-
- linux日志文件的管理、备份及日志服务器的搭建
- Linux下挂载windows的共享目录操作方法
- Linux系统中的备份文件命令(linux系统中的备份文件命令有哪些)
- 麒麟KYLINOS|通过不同方法设置用户访问文件及目录权限
- 「Linux笔记」系统目录结构(linux目录的结构及含义)
- linux中修改归属权chown命令和chgrp命令
- 工作日报 2021.10.27 Android-SEAndroid权限问题指南
- Windows和Linux环境下,修改Ollama的模型默认保存路径
- 如何强制用户在 Linux 上下次登录时更改密码?
- 如何删除Linux文件夹中除某些扩展名之外的所有文件?
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)