为CentOS/RHEL等发行版中的systemd服务配置ulimit限制
近年来,几乎所有现代Linux发行版都将service替换成了systemd以实现更完善的服务管理,而随之变化的是相关用户策略的变化。可能不少读者都遇到过systemd服务提示打开文件数过多,但设置ulimit无效的问题,尤其是对于数据库这种并发数较大的业务。本文将为读者讲解如何正确地为systemd的服务配置ulimit限制。
近年来,几乎所有现代Linux发行版都将service替换成了systemd以实现更完善的服务管理,而随之变化的是相关用户策略的变化。可能不少读者都遇到过systemd服务提示打开文件数过多,但设置ulimit无效的问题,尤其是对于数据库这种并发数较大的业务。本文将为读者讲解如何正确地为systemd的服务配置ulimit限制。
在软件开发,尤其是命令行软件开发过程中,我们经常会遇到需要响应用户中止热键的情况:如Ctrl+C(中止程序)、Ctrl+Z(Shell下发送SIGTSTP信号)等,这些热键最终会以进程间信号的方式通过操作系统传递给进程。一个完善的软件应该能通过合适的方式处理各种信号,并执行用户所需的任务,以Python为例,它提供了signal模块便于我们捕获、处理信号,本文将为读者介绍常见的进程间信号与Python下使用signal响应进程间信号的方法。
群晖的家用、商用NAS因其易用性与稳定性饱受好评,但众所周知买系统送主机的群晖NAS价格高昂.对于不想花那么多钱的用户,我们有第三方Bootloader:Jun’s Mod来实现所谓的『黑群晖』。Jun’s Mod V1.02b中存在一个BUG,会导致DSM系统文件损毁,故障表现为可以ping通,ssh可以连接,但无法打开网页控制面板,提示『您所指定的页面损坏』。本文将给出在保留用户数据情况下解决该故障的一种方法。
最近参与了一款类Haystack存储引擎的开发,在开发的后期需要进行性能测试,即需要大量小文件作为测试素材。考虑到文件数量以千万/亿记,因此如何快速生成这些文件十分重要。这篇文章为大家分享一下我的探索过程,以及多种生成大量文件的方案。
在维护实习单位服务器的过程中,偶然发现一个有350万文件的文件夹需要清理,于是我习惯性执行了
rm -rf ./*
,却在数秒后被告知“参数列表过长”。在一番折腾过后,我终于通过取巧的办法完成了这一任务,也随着相关内核源码的阅读,了解到了关于Linux Shell的一些有趣特性。
FydeOS是在ChromiumOS基础上进行本地化与功能增强开发出的操作系统,解决了ChromeOS家族在国内由于网络问题带来的较差体验。系统流畅顺滑,但我发现在最新版本的FydeOS下运行Linux桌面应用会出现缩放异常的问题,很是恼人。本文将分享我解决这一问题的过程与方法。
监控在日常运维中非常重要,有助于提前发现问题,并及时进行系统优化。通常我们会使用第三方工具来对系统进行监控,但在个别场景下(例如Gravitational Teleport等工具所提供的动态label,可以自动执行Shell命令)使用Shell会更加灵活,只可惜相关资料太少,且大量谬误。本文将整理使用Shell Script输出CPU、内存、磁盘占用百分比的命令,方便读者查阅与使用。
在前一篇文章中,我简述了CentOS下安装旧版本软件的方法,该文章以
kubeadm
为例完成了安装,但不久后我发现该方法对Docker不奏效,需要额为的操作。因此我撰写这篇补充的文章,专门介绍如何安装旧版本Docker。
由于最近要做关于Kubernetes的一系列漏洞分析,需要安装大量旧版本的Kubernetes,通常安装旧版本软件的方法是直接找到旧版本源码,然后从源码进行构建,但该方案过于复杂,恰好测试环境是CentOS操作系统,那么能不能直接通过CentOS的包管理器yum来安装旧版本软件呢?方法其实很简单。
相信只要在Shell、PHP、Perl等语言中接触过『多行字符串』的人,对Heredoc以及其特征性的『EOF』标识符不会陌生。但关于Heredoc背后一些有意思的玩法,却很少有人接触。这篇文章为大家介绍一下Heredoc的基础操作,历史由来,及其进阶使用。