文档章节

文件描述符再述之 initscript 和 systemd

anglix
 anglix
发布于 2015/11/03 14:58
字数 454
阅读 207
收藏 3
点赞 0
评论 0

服务的 ulimit 设置无效

设定 文件描述符

  • /etc/security/limits.conf 内容:
* soft nproc 10000
* hard nproc 10000
* soft nofile 4194304
* hard nofile 4194304
  • /etc/sysctl.conf 片段:
fs.nr_open = 5242880
fs.file-max = 4194304
  • /etc/profile.d/ulimit.sh 内容:
#!/bin/bash
[ "$(id -u)" == "0" ] && ulimit -n 4194304
ulimit -u 80000
  • /etc/pam.d/login 下相关文件片段
session     required      pam_limits.so

service启动的服务,Runtime文件描述符仍是1024? :joy:

grep 'open files' /proc/$(pgrep cron)/limits
# Max open files            1024                 4096                 files 

SysV的系统设定(CentOS6/Debian7)

initscript

示例

# cat /etc/initscript 
ulimit -n 1048576
eval exec "$4"

Systemd系统的设定(CentOS7/Debian8)

systemd 应么写? :joy:

  • systemd怎么写

systemd 怎么用?

服务启停,与 service 的对应关系。以 cron 服务为例

systemctl start cron # service cron start
systemctl stop cron # service cron stop
systemctl restart cron # service cron restart
systemctl try-restart cron # service cron condrestart
systemctl reload cron # service cron reload
systemctl status cron # service cron status
systemctl is-active cron # service cron status
systemctl list-units --type service --all # service --status-all

开机启动,与 chkconfig 的对应关系。以 cron 服务为例:

systemctl enable cron # chkconfig cron on
systemctl disable cron # chkconfig cron off
systemctl status cron # chkconfig --list cron
systemctl is-enabled cron # chkconfig --list cron
systemctl list-unit-files --type service # chkconfig --list

修改 systemd 对应的配置

  • Debug 时你会发现,最终脚本执行过程被重定向到 systemd里了:
bash -x /etc/init.d/cron restart
+ . /lib/lsb/init-functions
+++ run-parts --lsbsysinit --list /lib/lsb/init-functions.d
++ . /lib/lsb/init-functions.d/20-left-info-blocks
++ . /lib/lsb/init-functions.d/40-systemd
++++ systemctl -p CanReload show cron.service
+++ systemctl_redirect /etc/init.d/cron restart
+++ log_daemon_msg 'Restarting cron (via systemctl)' cron.service
+++ /bin/systemctl restart cron.service
  • 修改 systemd 对应的配置文件 /etc/systemd/system.conf/etc/systemd/user.conf
sed -i 's/^#DefaultLimitNOFILE=$/DefaultLimitNOFILE=1048576/g' /etc/systemd/system.conf /etc/systemd/user.conf # 重启系统生效

调试 systemd

  1. 修改 /etc/default/grub 配置:
GRUB_CMDLINE_LINUX="systemd.log_target=kmsg systemd.log_level=debug"
# update-grub # 更新后重启系统
  1. 修改 /etc/systemd/system.conf 配置:
LogLevel=debug   
LogTarget=kmsg
  1. 重启后使用 dmesg 即可查看。

© 著作权归作者所有

共有 人打赏支持
anglix

anglix

粉丝 31
博文 35
码字总数 17615
作品 0
珠海
系统管理员
systemd使用详解

systemd是干什么的不多解释 具体可以自己去百度一下 不过介绍相关使用方法的基本上没有,所以这里算抛砖引玉吧 遗漏和不懂之处颇多,因为能查到的资料有限--不过对于初期使用已经绰绰有余。 ...

KlausZL ⋅ 2014/04/18 ⋅ 0

Archlinux systemd 开机执行rc.local

Archlinux 替换initscript 为systemd方式后,许多服务启动方式已经发生变化。原来的/etc/rc.local已经消失,并被建议使用tmpfiles.d方式替换。但是有些操作tmpfiles.d无法替代。 需要手动写一...

刘少 ⋅ 2013/01/16 ⋅ 1

Ceph v10.2.4 发布,分布式存储系统

Ceph v10.2.4 发布了。Ceph是加州大学Santa Cruz分校的Sage Weil(DreamHost的联合创始人)专为博士论文设计的新一代自由软件分布式文件系统。自2007年毕业之后,Sage开始全职投入到Ceph开 ...

局长 ⋅ 2016/12/07 ⋅ 1

Javascript文件加载:LABjs和RequireJS

传统上,加载Javascript文件都是使用<script>标签。 就像下面这样:   <script type="text/javascript" src="example.js"></script> <script>标签很方便,只要加入网页,浏览器就会读取并运......

C_Liwang ⋅ 2014/12/23 ⋅ 0

[Javascript]文件加载:LABjs和RequireJS

作者: 阮一峰 日期: 2011年10月 3日 传统上,加载Javascript文件都是使用<script>标签。 就像下面这样:   <script type="text/javascript" src="example.js"></script> <script>标签很方......

亭子happy ⋅ 2012/09/29 ⋅ 0

Javascript文件加载:LABjs和RequireJS

传统上,加载Javascript文件都是使用

阮一峰 ⋅ 2011/10/03 ⋅ 0

JS的并行加载与执行顺序

JavaScript文件(下面简称脚本文件)需要被html文件引用才能在浏览器中运行。在html文件中可以通过不同的方式来引用脚本文件,我们需要关注的是,这些方式的具体实现和这些方式可能会带来的性...

wf王帆 ⋅ 2016/05/16 ⋅ 0

在centos7上修改Mariadb(MySQL)open_files_limit的值

在工作中使用mysql数据库的时候或许会遇到下面这个错误: [ERROR] when opening file: '/var/tmp/#sql_2ad6_1.MAD' (Errcode: 24) 这是因为Mariadb(MySQL)打开的文件描述符个数超出了openf...

OMCloud ⋅ 2017/11/01 ⋅ 0

Linux 内核 D-Bus 实现取得突破

Red Hat开发者正在开发的Linux内核D-Bus实现(Kdbus)取得了重大进展。他们使用Kdbus和最新systemd创造了一个可启动的Fedora 20系统。代码应该能支持其它现代Linux发行版,但目前仅在Fedora ...

oschina ⋅ 2013/12/31 ⋅ 11

解决ubuntu系统mysql open_files_limit配置不生效问题

最近接手维护一台mysql服务器,系统是ubuntu 16.04,mysql版本5.7,安装方式是apt检查mysql配置参数时发现openfileslimit是1024,有点小,需要调大一点 首先show global status like 'openfi...

opsfq ⋅ 06/09 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Jenkins实践3 之脚本

#!/bin/sh# export PROJ_PATH=项目路径# export TOMCAT_PATH=tomcat路径killTomcat(){pid=`ps -ef | grep tomcat | grep java|awk '{print $2}'`echo "tom...

晨猫 ⋅ 今天 ⋅ 0

Spring Bean的生命周期

前言 Spring Bean 的生命周期在整个 Spring 中占有很重要的位置,掌握这些可以加深对 Spring 的理解。 首先看下生命周期图: 再谈生命周期之前有一点需要先明确: Spring 只帮我们管理单例模...

素雷 ⋅ 今天 ⋅ 0

zblog2.3版本的asp系统是否可以超越卢松松博客的流量[图]

最近访问zblog官网,发现zlbog-asp2.3版本已经进入测试阶段了,虽然正式版还没有发布,想必也不久了。那么作为aps纵横江湖十多年的今天,blog2.2版本应该已经成熟了,为什么还要发布这个2.3...

原创小博客 ⋅ 今天 ⋅ 0

聊聊spring cloud的HystrixCircuitBreakerConfiguration

序 本文主要研究一下spring cloud的HystrixCircuitBreakerConfiguration HystrixCircuitBreakerConfiguration spring-cloud-netflix-core-2.0.0.RELEASE-sources.jar!/org/springframework/......

go4it ⋅ 今天 ⋅ 0

二分查找

二分查找,也称折半查找、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于...

人觉非常君 ⋅ 今天 ⋅ 0

VS中使用X64汇编

需要注意的是,在X86项目中,可以使用__asm{}来嵌入汇编代码,但是在X64项目中,再也不能使用__asm{}来编写嵌入式汇编程序了,必须使用专门的.asm汇编文件来编写相应的汇编代码,然后在其它地...

simpower ⋅ 今天 ⋅ 0

ThreadPoolExecutor

ThreadPoolExecutor public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, ......

4rnold ⋅ 昨天 ⋅ 0

Java正无穷大、负无穷大以及NaN

问题来源:用Java代码写了一个计算公式,包含除法和对数和取反,在页面上出现了-infinity,不知道这是什么问题,网上找答案才明白意思是负的无穷大。 思考:为什么会出现这种情况呢?这是哪里...

young_chen ⋅ 昨天 ⋅ 0

前台对中文编码,后台解码

前台:encodeURI(sbzt) 后台:String param = URLDecoder.decode(sbzt,"UTF-8");

west_coast ⋅ 昨天 ⋅ 0

实验楼—MySQL基础课程-挑战3实验报告

按照文档要求创建数据库 sudo sercice mysql startwget http://labfile.oss.aliyuncs.com/courses/9/createdb2.sqlvim /home/shiyanlou/createdb2.sql#查看下数据库代码 代码创建了grade......

zhangjin7 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部