Bash 的 no-fork 优化】的更多相关文章

我们知道,Bash 在执行一个外部命令时,会先 fork() 一个子进程,然后在子进程里面执行 execve() 去加载那个外部程序.fork 子进程是会耗性能的,所以 Bash 会在下面几种情况下不 fork 子进程,直接在当前进程执行 execve(). bash -c 'command' 如果用了 bash -c 的形式启动 Bash,同时 -c 选项的参数里只包含一个命令,比如 bash -c 'sleep 666',这时 Bash 不会 fork 子进程去运行 sleep 命令,它会让…
众所周知,bash是一款极其强大的shell,提供了强大的交互与编程功能.这样的一款shell中自然不会缺少“函数”这个元素来帮助程序进行 模块化的高效开发与管理.于是产生了由于其特殊的特性,bash拥有了fork炸弹.Jaromil在2002年设计了最为精简的一个fork炸弹的实 现. 所谓fork炸弹是一种恶意程序,它的内部是一个不断在fork进程的无限循环,fork炸弹并不需要有特别的权限即可对系统造成破坏.fork炸 弹实质是一个简单的递归程序.由于程序是递归的,如果没有任何限制,这会导…
Bash 的若干基本问题   这里介绍一些bash启动前.后的问题,以及一些使用bash需要注意的基本问题.     1.Bash的介绍   Bash是一种Shell程序,它是一般的Linux系统中的默认的Shell程序,一般情况下Bash指的是/bin/bash这个软件. 一个Linux系统中有多少个可用的Shell程序,可以从/etc/shells文件中查出来. 当前登录用户的默认Shell是哪一个,可以从/etc/passwd文件中与此用户对应的那一行最后一个字段看出来.或者也可以通过ec…
一名运维工程师在运维岗位上时间久了,就会发现Linux优化的重要性,同时会给运维工作带来很多的便利性.本人逐渐认识到了这一点,所以特意在工作闲暇之余,通过阅读Linux相关书籍及向同事.同行高手咨询,针对Linux系统的一些基本优化做了如下归纳总结,如有不足之处,还望大伙补充完善. 本文主要描述一些基本的系统优化知识点,并未涉及Linux深化优化,关于Linux的深化优化知识本人后期会更新. 第一点:Linux的管理尽量不用root用户,利用sudo命令来控制普通用户对系统的管理 新建一个用户,…
sysctl命令被用于在动态地修改内核的运行参数,可用的内核参数在目录/proc/sys中. 它包含一些TCP/IP堆栈和虚拟内存系统的高级选项, 用sysctl可以读取设置超过五百个系统变量. sysctl变量的设置,通常是字符串,数字或者布尔型(布尔型用1来表示Yes',用0来标识'No') 这里把常用的系统变量, 列队整理为脚本,便于使用. #!bin/bash#作者:liusingbon#功能:优化内核参数,适用RHEL7cat >> /usr/lib/sysctl.d/00-syst…
程序和进程的区别: 1.程序是一种静态资源 程序启动产生进程 2.程序与进程无一一对应原则  进程是动态的一个过程 父进程和子进程在前面提过 前台进程:执行命令时只能等待的进程为前台进程也叫异步进程 后台进程:通过在末尾加上 &  符号,使得shell创建出子进程来执行它,需要重定向到一个文件,返回一个新建的子进程的进程号. 后台进程只能针对非交互进程使用,比如find等 进程状态  等待cpu--就绪    执行   等待交互 w 用户名查看登录用户信息  who所有登录的用户信息 load…
Ubuntu默认不自动挂载磁盘. 只是学习Bash使用,需优化如使用 # file: mountAll.sh # include color support # a list of variables containing color code in xterm256 . bash.colors # check if function isMounted { disk=$1 for d in `mount -l | awk '{print $1}' | sort |uniq`;do if tes…
一.pwd 1.学习pwd命令 man pwd查看pwd功能 可以得知pwd功能是打印当前目录 2.研究pwd实现需要的系统调用(man -k; grep),写出伪代码 (1)man -k directory | grep 2查看是否有可用命令 (2) 可以得知getcwd命令可以获得当前目录路径 man getcwd查看getcwd命令功能 找到所需要的头文件以及函数 #include <unistd.h> char *getcwd(char *buf, size_t size); (3)由…
在学习 Linux 系统权限相关的主题时,我们首先关注的基本都是文件的 ugo 权限.ugo 权限信息是文件的属性,它指明了用户与文件之间的关系.但是真正操作文件的却是进程,也就是说用户所拥有的文件访问权限是通过进程来体现的.本文主要介绍进程的权限,并通过示例解释用户身份与进程权限之间的关系.说明:本文的演示环境为 ubuntu 16.04. 基本概念 用户对于支持多任务的 Linux 系统来说,用户就是获取资源的凭证. 权限权限用来控制用户对计算机资源(CPU.内存.文件等)的访问,一般会分为…
第1节 程序.进程.守护进程.僵尸进程的区别 程序.进程.守护进程.僵尸进程: 程序:c/php/java,代码文件,静态的,放在磁盘里的数据. 进程:正在内存中运行的程序,进程是动态的,会申请和使用系统资源,并与操作系统内核进行交互. 进程运行:系统把程序放在内存里执行. 守护进程:在内存持续保持运行着的程序. 僵尸进程:是因为子进程在没有执行完毕之前,自己的父进程被kill掉,父进程无法通知内核清理回收:子进程就成为了一个没娘的孩子,任由它自身自灭. 第2节 多任务与CPU 多任务与CPU:…