Ubuntu系统进程管理笔记
前言
今天对前端服务器进行迁移,本来前端服务器就一台,都是放置前端静态文件的地方,应该是比较简单的。唯一的问题是由于Nginx需要给ie8浏览器个i同https访问支持,不得不对Nginx进行重新编译。编译完成后想启动一下服务,才发现没有systemctl,于是使用service命令,奇怪的是service命令无法居然无法识别nginx服务。经过一番折腾终于解决了问题。
以前这些命令一直是拿来就用,没什么深究,只有遇到了问题才知道基础的重要性。下面就对这些东西做个简单的记录。
进程管理工具
Linux进程管理常用的工具有service、systemctl、update-rc.d等。其中越来越多的发行版使用systemctl作为程序的的管理工具。问题就在于今天我所使用的Ubuntu版本是14.04,也就是还没有把systemctl作为默认的软件启动管理工具。systemctl是15.0x之后的版本才作为自带的进程管理工具的。
SysV/Upstart/systemd是什么
简单的说,他们是系统初始化时的第一个进程,也就是pid为1的进程,可以通过ps -p 1 命令来检测。
$ ps -p 1
如显示的数据类似于:
PID TTY TIME CMD
1 ? 00:00:02 systemd
若显示systemd则为systemd,显示init则为Upstart。
在第一个进程启动之后,这个进程负责启动其它设置了开机自启动的进程。这就带出了一个概念,这些开机自启或者不自启的信息存放在哪里?
在Ubuntu系统中,通过SysV管理的进程启动信息放在/etc/init.d/文件夹中,里面的文件实际上是一些shell脚本,运行这些脚本就能启动或停止这些进程。而它对应的管理工具就是update-rc.d命令。
例如要启动nginx服务,可以通过sudo update-rc.d nginx enable实现。
通过Upstart管理的进程启动信息放在/etc/init文件夹中,其中都是.conf后缀的配置文件,与其对应的命令行管理工具是initctl。我们可以通过在/etc/init中编写相应的配置文件达到启动服务的目的。
通过systemd管理的进程启动信息放在/etc/systemd/system 、 /lib/systemd/system、/var/lib/systemd 几个文件夹中,例如通过命令locate nginx.service就会得到以下的位置信息:
/etc/systemd/system/multi-user.target.wants/nginx.service
/lib/systemd/system/nginx.service
/var/lib/systemd/deb-systemd-helper-enabled/nginx.service.dsh-also
/var/lib/systemd/deb-systemd-helper-enabled/multi-user.target.wants/nginx.service
配套的命令行工具是systemctl。可以通过命令 sudo systemctl enable nginx.service 将服务加到开机自启动中。需要注意的是如果不是软件安装时生成的.service文件,而是自己在上述位置写相应的文件的话,需要使用systemctl daemon-reload命令重新加载新的脚本才能使用。
另一个有用的命令是service,它兼容了update-rc.d和initctl命令的功能,两种启动方式都能使用。常用命令例如service nginx status。
每台Linux服务器只能有一个系统初始化软件,从历史上说先有SysV,到Upstart,再到systemd。比较新版的Linux发行版很多都以systemd作为初始化管理软件。
systemd是在Ubuntu15.04才开始作为默认初始化程序的。
参考:
https://www.techforgeek.info/enable_disable_service_on_ubuntu.html
https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1416728
https://segmentfault.com/a/1190000009723940
https://stackoverflow.com/questions/7646972/nginx-invalid-pid-number
https://gist.github.com/AJMaxwell/f6793605068813aae888216b02364d85
http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html
Ubuntu系统进程管理笔记的更多相关文章
- Ubuntu系统进程绑定CPU核
Ubuntu系统进程绑定CPU核 作者:chszs.版权全部,未经允许,不得转载. 博主主页:http://blog.csdn.net/chszs 本文讲述如何在Ubuntu系统中,把指定的进程绑定到 ...
- 沈逸老师ubuntu速学笔记(2)-- ubuntu16.04下 apache2.4和php7结合编译安装,并安裝PDOmysql扩展
1.编译安装apache2.4.20 第一步: ./configure --prefix=/usr/local/httpd --enable-so 第二步: make 第三步: sudo make i ...
- 沈逸老师ubuntu速学笔记(1)--安装flashplayer,配置中文输入法以及常用命令
开篇首先感谢程序员在囧途(www.jtthink.com)以及沈逸老师,此主题笔记主要来源于沈老师课程.同时也感谢少年郎,秦少.花旦等同学分享大家的学习笔记. 1.安装flash player ctr ...
- pyenv简介——Debian/Ubuntu中管理多版本Python
pyenv简介——Debian/Ubuntu中管理多版本Python MAY 21ST, 2016 12:00 AM | COMMENTS pyenv是管理Python版本的工具,它支持在多个Pyth ...
- ubuntu 软件包管理工具 dpkg,apt-get,aptitude 区别
ubuntu 软件包管理工具 dpkg,apt-get,aptitude 区别 一:dpkg dpkg 是一种比较低层的软件包安装管理工具,在安装时,不会安装软件包的依赖关系:只能安装所要求的软件包: ...
- Ubuntu软件包管理器
Ubuntu软件包管理 Ubuntu下对软件管理工具有:apt,dpkg,tasksel,aptitude等,我们常用的就是前三个工具.下面就介绍这三个工具的用法. dpkg 在Linux发展之初,安 ...
- Linux系统进程管理
Linux系统进程管理 什么是进程 进程是已启动的可执行程序的运行实例,进程有以下组成部分: 分配内存, 已分配内存的地址空间 安全属性, 进程的运行身份和权限 进程代码, 运行一个或多个的线程 进程 ...
- ubuntu包管理机制
1 ubuntu包管理机制 跟大家分享一下ubuntu的软件管理机制.如果你们有过: apt-get install 或者 apt-get update 失败的经历. 在众多的apt命令中迷失. 疑惑 ...
- Linux_系统进程管理
目录 目录 进程管理 进程管理的指令 查看进程ps指令 pgreppidof指令查pid lsof查看系统中的进程 nice指令修改进程的nice值 kill指令结束进程 top系统进程管理器任务管理 ...
随机推荐
- 《机器学习实战》 in python3.x
机器学习实战这本书是在python2.x的环境下写的,而python3.x中好多函数和2.x中的名称或使用方法都不一样了,因此对原书中的内容需要校正,下面简单的记录一下学习过程中fix的部分 1.pr ...
- IDEA使用maven构建时控制台中文乱码的解决办法
使用maven clean install 项目时控制台中文乱码,解决办法如下: Setting->maven->runner VMoptions: -Dfile.encoding=UTF ...
- linux下easy_install的安装与使用详解
Python中的easy_install工具用起来非常好用,它的作用类似于Php中的pear,或者Ruby中的gem,或者Perl中的cpan. 1.easy_install安装 如果想使用easy_ ...
- Linux TCP协议使用的变量
Linux /proc/sys/net/ipv4/* 变量 TCP变量:somaxconn - INTEGER listen()的backlog参数的上限,在用户态为SOMAXCONN.默认是1 ...
- Linux建立FTP服务器
http://blog.chinaunix.net/uid-20541719-id-1931116.html http://www.cnblogs.com/hnrainll/archive/2011/ ...
- 文件系统中 atime,lazytime,relatime 详聊
atime,ctime,mtime是文件inode的三个时间戳,分别表示文件最近一次的访问时间:inode本身的更改(changed)时间:文件数据的更改(modify)时间:这几个概念还是很好区分. ...
- 批处理之FOR命令
- 【bzoj3379】[Usaco2004 Open]Turning in Homework 交作业 区间dp
题目描述 数轴上有C个点,每个点有一个坐标和一个访问时间,必须在这个时间后到达这个点才算访问完成.可以在某个位置停留.每在数轴上走一个单位长度消耗一个单位的时间,问:访问所有点并最终到B花费的最小时间 ...
- 洛谷 P1379 八数码难题 解题报告
P1379 八数码难题 题目描述 在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字.棋盘中留有一个空格,空格用0来表示.空格周围的棋子可以移到空格中.要求解的问题是:给出一种初始布局(初 ...
- react router路由传参
今天,我们要讨论的是react router中Link传值的三种表现形式.分别为通过通配符传参.query传参和state传参. ps:进入正题前,先说明一下,以下的所有内容都是在react-rout ...