ln -s 创建一个软链接
ln 加文件名 创建一个硬链接 inode节点一样
源码安装
获取源码包途径
官方网站,可以获取最新的软件包
可在虚拟机里面直接下载
可以在yum源里下载
[root@localhost ~]# yum install gcc 编译需要
[root@localhost ~]# yum install wgest
[root@localhost ~]# wget http://nginx.org/download/nginx-1.16.0.tar.gz
这是下载nginx压缩包到本地目录下
可能会需要几个依赖包
[root@localhost ~]# yum -y install pcre pcre-devel zlib-devel openssl-devel
[root@localhost ~]# tar -xf nginx-1.16.0.tar.gz -C /usr/loacl/src
将压缩包解压到/usr/local/src下面
[root@localhost ~]# ls
[root@localhost ~]# nginx-1.16.0
[root@localhost ~]# cd nginx-1.16.0
[root@localhost ~]# ./configure
--user=www
--group=www
--prefix=/usr/local/nginx
--with-http_stub_status_module
--with-http_sub_module
--with-http_ssl_module
--with-pcre
这一步是进行配置文件 后面一定要指定好路径
[root@localhost ~]# make && make install
这步就是编译安装了
** make -j cpu核心数 **
系统服务
后台服务
工作任务
首先建立一个.sh文件
[root@localhost ~]vim a.sh
while true
do
echo "$(date +%s) I love her" >> /root/bin/love.txt
sleep 3
done
#相当于编写了一个脚本文件
运行的命令是
sh .a.sh # 文件里面会有软链接到什么的文件 执行成功后会产生相应的文件
此时的时候这个程序是卡在当前终端的,在前台运行的 如果不终止这个程序的话就无法执行别的命令了
ctrl + z 把这个程序放到后台
jobs 命令能查看当前后台的工作任务
执行这个jobs命令后会出来一个 工作号
fg%工作号可以让后台的工作任务调到前台继续进行
bg%工作号会让后天处于停止状态的任务继续运行于后台
使用下面命令可以让程序一开始就在后台运行
sh a.sh &
杀死进程
通过查找这个a.sh的进程号
ps aux |grep a.sh
kill -15 进程号
系统服务的时候可以通过写个love.service写到/etc/systemd/system下面通过systemctl start 来启动这个服务
daemon 守护进程
在 CentOS7 中是 systemd, CentOS5/6 是 init。
服务的启动、关闭与观察等方式:
启动:/etc/init.d/daemon start
关闭:/etc/init.d/daemon stop
重新启动:/etc/init.d/daemon restart
查看状态:/etc/init.d/daemon status
Linux中的七个等级
0 关机
1 单用户模式(root)
3 带网络服务的多用户纯文本模式
5 图形界面
6 重启
指定默认启动的服务
chkconfig --list // 查看所有的服务运行级级别的状态
chkconfig --level 3 mysqld off // 设置 mysqld 服务在运行级别 3 默认不启动
chkconfig --level 3 5 mysqld on // 设置 mysqld 服务在运行级别 3 和 5 中默认启动
centos7 中的 systemd
systemd的配置文件放置目录
配置文件都放在下面的路径中
/usr/lib/systemd/system/
每个服务最主要的启动脚本设置,有点类似以前的 /etc/init.d 下面的文件;
/run/systemd/system/
系统执行过程中所产生的服务脚本,这些脚本的优先序要比 /usr/lib/systemd/system/ 高!
/etc/systemd/system/
管理员依据主机系统的需求所创建的执行脚本,其实这个目录有点像以前 /etc/rc.d/rc5.d/Sxx 之类的功能!执行优先序又比 /run/systemd/system/ 高!
systemctl管理服务
命令语法
command 主要有:
status :查看这个 unit 的状态!
start :立刻启动
stop :立刻停止
restart :先执行 stop 再执行 start 的意思
enable :设置下次开机时,启动后面接的 unit
disable :设置下次开机时,不启动后面接的 unit
reload :不关闭后面接的 unit 的情况下,重新载入配置文件,让设置生效
查看服务的状态
systemctl status x.service
通过查看active的状态来看这个服务的状态
有三个状态:active(running) 正在运行
active(exited) 执行一次就正常结束的服务
active(waiting) 正在执行当中,不过还在等待其他的事件才能继续处理
关于dameon的默认状态
enabled:这个 daemon 将在开机时被执行
disabled:这个 daemon 在开机时不会被执行
mask:这个 daemon 无论如何都无法被启动!因为已经被强制注销 (非删除)。可通过 systemctl unmask 方式改回原本状态
static:这个 daemon 不可以自己启动 (enable 不可),不过可能会被其他的 enabled 的服务来唤醒 (相依属性的服务)
查看系统服务和端口
head -50 /etc/services
systemctl 配置文件
配置文件中大概能够将整个设置分为三个部份,就是:
[Unit]
unit 本身的说明,以及与其他相依 daemon 的设置,包括在什么服务之后才启动此 unit 之类的设置值;
[Service], [Socket], [Timer], [Mount], [Path]..
不同的 unit type 就得要使用相对应的设置项目。
我们拿的是 sshd.service 来当范本,所以这边就使用 [Service] 来设置。 这个项目内主要在规范服务启动的脚本、环境配置文件文件名、重新启动的方式等等。
[Install]
这个项目就是将此 unit 安装到哪个 target 里面去的意思!
网友评论