1、chkconfig

chkconfig是一个用于维护/etc/rc[0-6].d目录的命令行工具。

序号功能命令说明1增加服务chkconfig -–add 服务名添加一个chkconfig管理的service,并在/etc/rc[0-6].d 目录下添加链接2删除服务chkconfig -–del 服务名从chkconfig 管理名单中删除该service,并且删除 /etc/rc[0-6].d 目录下所有与之关联的链接3列出所有服务信息chkconfig -–list 服务名如果不指定name,会列出所有services的信息4设置服务启动信息chkconfig 服务名 on/off/reseton、off、reset用于改变service的启动信息。on表示开启,off表示关闭,reset表示重置5设置服务运行级别chkconfig --level 0-6 服务名指定运行级为2,3,4,5 ,这块不懂

0:系统停机状态,系统默认运行级别不能设置为0,否则不能正常启动,机器关闭。 1:单用户工作状态,root权限,用于系统维护,禁止远程登陆,就像Windows下的安全模式登录。 2:多用户状态,没有NFS支持。 3:完整的多用户模式,有NFS,登陆后进入控制台命令行模式。 4:系统未使用,保留一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置。 5:登陆后进入图形GUI模式,XWindow系统。 6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动。运行init 6机器就会重启。

实操

编写nginx启动脚本,并加入系统服务

vi /etc/init.d/nginx

然后在里边填写内容 注意前四行别忽略,必须要有,而且要顶格。起作用的,不加会报错。

#!/bin/bash

# chkconfig: - 30 21

# description: http service.

# Source Function Library

. /etc/init.d/functions

# Nginx Settings,这块根据具体情况修改

NGINX_SBIN="/usr/local/nginx/sbin/nginx"

NGINX_CONF="/usr/local/nginx/conf/nginx.conf"

NGINX_PID="/usr/local/nginx/logs/nginx.pid"

RETVAL=0

prog="Nginx"

start()

{

echo -n $"Starting $prog: "

mkdir -p /dev/shm/nginx_temp

daemon $NGINX_SBIN -c $NGINX_CONF

RETVAL=$?

echo

return $RETVAL

}

stop()

{

echo -n $"Stopping $prog: "

killproc -p $NGINX_PID $NGINX_SBIN -TERM

rm -rf /dev/shm/nginx_temp

RETVAL=$?

echo

return $RETVAL

}

reload()

{

echo -n $"Reloading $prog: "

killproc -p $NGINX_PID $NGINX_SBIN -HUP

RETVAL=$?

echo

return $RETVAL

}

restart()

{

stop

start

}

configtest()

{

$NGINX_SBIN -c $NGINX_CONF -t

return 0

}

case "$1" in

start)

start

;;

stop)

stop

;;

reload)

reload

;;

restart)

restart

;;

configtest)

configtest

;;

_)

_echo* $"Usage: $0

Unknown macro: {start|stop|reload|restart|configtest}

"

RETVAL=1

esac

exit $RETVAL

保存该脚本后更改权限

chmod 777 /etc/init.d/nginx

添加nginx服务到chkconfig中管理

chkconfig --add nginx

设置nginx开机自启

chkconfig nginx on

2、systemctl

systemctl 用于命令行,它是一个用来管理 systemd 的守护进程/服务的基础工具,例如:(开启、重启、关闭、启用、禁用、重载和状态)。

所有服务创建的 unit 文件位与 /etc/systemd/system/

序号功能命令1启动服务systemctl start 服务名.service2停止服务systemctl stop 服务名.service3重启服务systemctl restart 服务名.service4重载服务systemctl reload 服务名.service5查看服务状态systemctl status 服务名.service6激活服务自启systemctl enable 服务名.service7禁止服务自启systemctl disable 服务名.service8杀死服务systemctl kill 服务名.service

实操

配置自启文件

vi /usr/lib/systemd/system/nginx.service

[Unit]

#Description指定当前服务的简单描述,改成自己需要的

Description=nginx网站代理服务

#After表示当前服务在network.target之后启动,可以指定多个服务,以空格隔开。

After=network.target

[Service]

#ExecStart将以fork()方式启动,此时父进程将会退出,子进程将成为主进程。

Type=forking

# ExecStart指定启动进程时执行的命令。

# ExecReload指定当该服务被要求重新载入配置时所执行的命令。另外,还有一个特殊的环境变量 $MAINPID 可用于表示主进程的PID,例如可以这样使用:/bin/kill -HUP $MAINPID。强烈建议将 ExecReload= 设为一个能够确保重新加载配置文件的操作同步完成的命令行。

ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf #这里放启动命令

ExecReload=/usr/local/nginx/sbin/nginx -s reload #这里放重启命令

ExecStop=/usr/local/nginx/sbin/nginx -s quit #这里放停止命令

#web服务设置私有/tmp或/var/tmp目录

PrivateTmp=true

[Install]

# “WantedBy=multi-user.target”表示当系统以多用户方式(默认的运行级别)启动时,这个服务需要被自动运行。

WantedBy=multi-user.target

设置开机自启

# 重新加载systemd配置文件

systemctl daemon-reload

# 开启自启

systemctl enable nginx.service

# 启动

systemctl start nginx

#停止

systemctl stop nginx

#重启

systemctl restart nginx

3、/etc/rc.d/rc.local

开机的时候会自动读取/etc/rc.d/rc.local文件,所以直接把启动命令放在文件中即可。

实操

vi /etc/rc.d/rc.local

# 在文件最下方添加启动命令,保存退出

/usr/sbin/nginx -c /etc/nginx/nginx.conf

精彩链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。