docker里用top的一个坑

业务背景

使用 top + grep 来判断一个进程是否退出。如果grep不到了,就说明退出里,否则等待1秒钟重新判断

测试进程process_abc,sleep 5秒钟后自动退出

#include <stdio.h>

int main()
{
   
   
        sleep(5);
        return 0;
}

检测脚本

velscode@velscode:~/test$ cat check.sh
#/bin/bash

while true
do
        top -n 1 -b | grep "process_abc"
        if [ $? -eq 0 ];then
                echo "process_abc alive, wait it"
                sleep 1
        else
                echo "process_abc exit"
                break
        fi
done

问题现象

通过 docker run --it .. 进入容器bash,手工执行命令,正常

检测脚本检测到目标进程5次,每次等待1秒,process_abc退出后,执行结束

# 拉起容器的脚本
velscode@velscode:~/test$ cat run_manual.sh
DOCKER_CONTAINER_TAG=ubuntu/test:1.0

docker build -f Dockerfile . -t ${DOCKER_CONTAINER_TAG}
docker run -it --privileged \
 -v $(pwd):/opt/ \
 -w /opt/ \
 ${DOCKER_CONTAINER_TAG}</
<think>好的,用户现在问的是如何将“制作一个完整网页”写成项目背景。之前他们问过简历中项目背景怎么写,现在具体到网页开发的项目,可能需要更针对性的建议。 首先,用户可能是一个正在准备简历的求职者,可能是学生或者刚毕业的应届生,或者是转行进入网页开发的人。他们的需求是展示自己的网页开发经验,但可能之前没有太多项目经验,或者这个项目是个人练习或课程作业,需要如何包装成专业的项目经历。 用户可能太清楚如何将简单的网页制作描述得更有分量,需要指导如何突出技术细节和成果。他们可能担心项目太小,够吸引HR,所以需要强调结构化的描述方法和量化成果。 接下来,我需要回顾之前的回答,确保结构一致。之前提到的框架包括明确项目背景、角色与职责、量化成果、技术细节、挑战与解决方案。现在需要将这些应用到具体的网页项目中。 例如,项目背景需要明确目的、规模和周期。用户可能只是做了一个个人项目,但可以强调解决的问题,比如响应式设计、用户交互优化等。角色方面,如果是独立开发,要突出个人贡献,比如栈开发或前端主导。 技术细节部分,需要列举具体的技术栈,比如HTML5、CSS3、JavaScript框架,可能还有后端技术。量化成果可能包括页面性能提升、用户体验指标等,比如加载时间减少百分比,用户满意度提升。 挑战与解决方案是关键,用户可能遇到过兼容性问题、性能优化难题,需要具体描述如何解决,比如使用Flexbox布局解决适配问题,或者通过懒加载优化图片加载速度。 另外,用户可能忽略适配性原则,比如应聘前端开发需要强调技术细节,而如果是栈或项目管理岗位,需要展示更多协作和流程管理的内容。应届生可能需要强调学习过程和项目流程的掌握。 最后,提供一个完整的案例参考,帮助用户具体化自己的项目描述。同时提醒避免笼统和术语堆砌,用具体数据和成果说话。</think>以下是针对「制作一个完整网页」在简历中的项目背景撰写指南,结合技术细节与成果量化方法,帮助你将简单开发任务转化为高价值项目描述: --- ### 一、基础框架搭建 **项目背景 = 目标 + 技术栈 + 用户价值 + 开发周期** - *错误写法*:用HTML/CSS做了一个网页 - *优化写法*:独立开发并部署响应式企业官网(日均访问量$500+$),采用React+Node.js实现动态内容加载与SEO优化,开发周期3周 --- ### 二、关键模块拆解(按岗位需求适配) #### 1. **前端开发岗重点** - **技术细节**: ```markdown - 技术架构:Next.js + TypeScript + Tailwind CSS - 核心技术: • 基于Intersection Observer API实现滚动动画触发 • 使用Webpack优化资源打包,首屏加载时间从$4.2s$降至$1.1s$(Lighthouse评分从$62$→$92$) ``` - **成果公式**: $$ \text{性能提升} = \frac{\text{优化前指标} - \text{优化后指标}}{\text{优化前指标}} \times 100\% $$ 示例:通过代码分割策略,JS文件体积减少$68\%$ #### 2. **栈开发岗扩展** - **后端联动**: ```markdown - 数据库设计:MongoDB Schema优化,查询响应时间<200ms - 接口规范:RESTful API设计(JWT鉴权+Swagger文档) - 部署方案:Docker容器化+Nginx负载均衡 ``` #### 3. **应届生/转行案例** - **流程完整性**: ```markdown - 需求分析:通过Figma完成3版原型迭代 - 版本控制:Git分支策略管理,解决$15+$次代码冲突 - 测试覆盖:Jest单元测试通过率$98\%$ ``` --- ### 三、高阶技巧:从「功能实现」到「问题解决」 **用STAR法则重构描述** - **原始描述**:做了登录注册功能 - **升级方案**: ```markdown - 情境(S):用户注册转化率仅$40\%$(竞品平均$65\%$) - 任务(T):优化注册流程并提升安性 - 行动(A): • 前端:实现表单实时验证(正则表达式+Zod库) • 后端:BCrypt加密+Redis缓存验证码(TTL$300s$) - 结果(R):转化率提升至$68\%$,未发生密码泄露事件 ``` --- ### 四、完整案例参考 **项目名称**:XX智能家居控制面板Web端 **项目背景**:为IoT硬件厂商开发跨平台管理界面(兼容$5$种设备协议,用户基数$2万+$) **技术架构**: - 前端:Vue3 + Vite + Pinia状态管理 - 后端:NestJS + PostgreSQL + MQTT协议通信 **核心成果**: 1. 实现WebSocket长连接通信,控制指令延迟从$800ms$优化至$120ms$ 2. 通过Tree Shaking移除$35\%$未使用代码,构建体积减少$42\%$ 3. 获公司季度创新奖(TOP 10%项目) --- ### 五、避清单 1. **避免空泛** - ✘ 使用Vue完成了页面开发 - ✔ 基于Vue3 Composition API重构组件库,复用率提升$60%$ 2. **拒绝罗列** - ✘ 技术栈:HTML/CSS/JS - ✔ 技术组合: $$ \text{技术选型} = \begin{cases} \text{响应式框架} & \text{Bootstrap 5 + 媒体查询} \\ \text{交互增强} & \text{GSAP动画库 + 自定义Hooks} \end{cases} $$ 3. **数据陷阱** - 错误案例:性能优化提升明显 - 正确方法:通过Chrome DevTools分析,FCP从$3.4s$→$1.8s$(Web Vitals达标率$100\%$) --- ### 六、适配策略 - **大厂投递**:突出复杂问题解决能力(如高并发、安防护) - **创业公司**:强调流程参与(产品设计→部署运维) - **设计岗侧重**:添加Figma/Sketch还原度、设计系统构建经验 通过将技术细节与业务价值绑定,即使是单页面项目也能展现工程化思维。建议使用[技术指标+商业影响]的复合描述结构,例如: $$ \text{项目价值} = \text{技术改进} \times \text{用户体验提升} $$
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值