- 博客(23)
- 收藏
- 关注
原创 linuxptp中clock_gettime的实现
分析了linuxptp的开源代码及内核驱动代码,分析出clock_gettime的实现过程
2022-08-11 15:51:08
2358
1
转载 ulimit的说明
ulimit工具是性能调优的简单工具而且也是Linux内置的一个功能,它的目的是用于控制由Shell运行的进程所能使用的系统最大资源。其实在生产环境中部署Linux后通常都会用这个工具去调整一些参数来交付使用,当然这个过程往往都是自动完成的,工具使用很简单,但是它涉及的知识还是比较多的。ulimit -a 查看所有限制,如果不加-H参数则默认显示软限制。这里显示的是系统默认设置,我没有做任何调整。ulimit用于限制shell启动进程所用的资源,内核文件大小、进程数据块大小、shell进程创建的
2022-03-10 10:34:10
2517
原创 perf stat的使用
1.perf stat直接输入perf stat后面不带任何参数,会出现使用提示2. 查看某个进程的性能统计perf stat -p 默认会出现以下事件项:task-clock,context-switches等等,还有很多事件没有显示。3. 显示更多的性能信息perf stat -p -d4.只看某个事件perf stat -p -e 事件名称使用perf list可以查看所有事件的名称在使用-e的时候可以选择某些事件。使用-e的时候一定要指定-p...
2022-03-01 18:01:04
3362
原创 软件定时器设计
定时器的作用定时器的主要用途是执行定时任务,就比如闹钟,定一个每天早上7点的闹钟,闹钟响了之后要执行起床刷牙的动作,地球也在执行定时操作,每24小时自转一圈,最近有新闻说地球自转越来越快了,地球定时器也不太准啊(lll¬ω¬)。上面举的两个例子就是循环定时器,只要你不取消闹钟,地球不爆炸,定时器就会一直存在,还有一些一次性定时任务,执行完就结束了,比如你定了一个抢火车票的任务,抢到票了任务就已完成。软件定时器软件世界的定时器与现实世界的定时器类似,也有循环定时任务和一次性定时任务,根据使用场景不同方案
2022-02-11 08:56:49
547
原创 timer_create及sigevent
最强大的定时器接口来自POSIX时钟系列,其创建、初始化以及删除一个定时器的行动被分为三个不同的函数:timer_create()(创建定时器)、timer_settime()(初始化定时器)以及timer_delete(销毁它)。一、创建一个定时器:int timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid)进程可以通过调用timer_create()创建特定的定时器,定时器是每个进程自己的,不是在fork
2022-02-08 11:18:36
693
转载 nohup和&的作用
结论使用&后台运行程序:结果会输出到终端使用Ctrl + C发送SIGINT信号,程序免疫关闭session发送SIGHUP信号,程序关闭使用nohup运行程序:结果默认会输出到nohup.out使用Ctrl + C发送SIGINT信号,程序关闭关闭session发送SIGHUP信号,程序免疫日后使用平日线上经常使用nohup和&配合来启动程序nohup ./test &:同时免疫SIGINT和SIGHUP信号转载自 https://blog.youkuaiyun.com
2022-02-07 10:37:03
143
原创 文件锁flock
1 flock()函数说明头文件#include <sysfile.h>函数原型int flock(int fd, int operation)函数说明1、此函数是从BSD中衍生出来的,但目前在大多数UNIX系统上都能找到。2、此函数只能处理单个主机上的文件,不能处理NFS上的文件。3、此函数按照 operation所指定的方式对fd锁指向的文件进行加锁和解锁等相关操作。4、此函数只能操作整个文件,不能操作此文件的部分区域。5、此函数加的是建议性锁,当进程结束时,系统会自
2022-01-07 10:20:11
1054
原创 几种设置开机启动的方法
1. rc.local不被推荐使用,但是还挺好用的。在鸟哥私房菜中说到ll /etc/rc3.d/ 可以查看到rc.local的运行级别是s99,我在自己环境上查看并未查看到,推测新版的linux中rc.local不被推荐使用后就未加入到级别3的启动中(其他级别也没有),但这并不代表rc.local没有被执行,在rc.local中加入打印并重启,rc.local确实有被执行。rc.local是在/etc/rc3.d/下的脚本之后运行的。在rc3.d中添加任务的方法见第二节。2. chkconfig
2021-12-23 19:08:30
1199
原创 shell 脚本for循环的使用
shell脚本的for循环有多种形式,这里说两种。1.高级语言的格式for i in {0..9}do echo "$i"done这种方式{}中必须使用数字,不能使用变量,如下述格式,shell似乎无法识别处$1和$2是变量,导致循环无法生效。for i in {$1..$2}do echo "$i"done2.C语言的格式j=$1for ((i=1; i<=j; i++))do echo "$i"done这种方式就可以使用变量来作为循环的控制条件。...
2021-10-27 09:22:15
11436
原创 rc.local启动问题(环境变量)
Linux系统启动顺序:第一步:init /etc/inittab第二步:启动相应的脚本,并且打开终端rc.sysinitrc.d(里面的脚本)rc.local第三步:启动login登录界面 login第四步:在用户登录的时候执行sh脚本的顺序,每次登录的时候都会完全执行的/etc/profile.d/file/etc/profile/etc/bashrc/root/.bashrc/root/.bash_profile在rc.local中添加自定义的脚本
2021-09-14 11:41:35
7950
原创 离线环境安装shellcheck
离线环境安装shellcheck离线环境安装shellcheck登录gitHub选择Table of Contents的Installing解压并安装离线环境安装shellcheck登录gitHubhttps://github.com/koalaman/shellcheck#installing选择Table of Contents的Installing该小节先介绍了一些在线安装的方法,...
2021-09-10 11:44:28
866
原创 shellcheck 常用错误
shellcheck 常用错误shellcheck 常用错误sc2164sc2086shellcheck 常用错误linux环境下使用命令,可以查看shell脚本的语法错误,以及shellcheck给出的建议。shellcheck 脚本在信息的最后几行,shellcheck给出了解决错误的网址,如:For more information:http://www.shellchec...
2021-09-10 11:44:15
2052
原创 linux 将本地目录设置为yum的下载目录
@[TOC]linux 将本地目录设置为yum的下载目录使用场景云开发环境,网络隔离了,无法通过yum下载安装包。挂载镜像创建一个本地目录mkdir /repo/iso将镜像挂载到步骤1创建的本地目录mount -o loop [iso存放的完整路径及文件名] /repo/iso设置yum的挂载路径 yum的配置文件存放在/etc/yum.repos.d/中,这些文件以.repo结尾,yum会去该目录下遍历.repo文件,并根据文件中指定的目录去下载文件,下载失败则尝
2021-09-10 11:33:25
513
原创 解决vsftpd报错530 login incorrect问题
解决vsftpd报错530 login incorrect问题 问题现象解决方法问题现象环境是CentOS,开启了vsftpd服务,使用adduser 和passwd添加并设置了用户名和密码。如:adduser aaapasswd bbb在本地window电脑使用ftp工具或者使用linux环境连接到ftp server提示:550 login incorrect。查看ftp server的日志,默认是/var/log/xferlog,没有看到报错误信息。解决方法1、用户名和密码错
2020-09-08 11:12:37
4630
原创 互斥锁和条件变量的作用
@互斥锁和条件变量互斥锁和条件变量互斥锁的作用怎样同步多个线程和进程之间的活动,为允许在线程和进程间共享数据,同步通常是必需的,互斥锁和条件变量是同步的基本组成部分。互斥锁和条件变量被用来同步一个进程内的各个线程,如果一个互斥锁或条件变量存放在多个进程间共享的某个内存区中,则被用于进程间同步。互斥锁的初始化有两种初始化方式:1、静态分配互斥锁:我们可以把它初始化为常量值static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER2、动态
2020-06-09 15:20:35
930
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人