一、RHEL 7的新的特性方法:
1、准备活动
传送门:
http://my.oschina.net/liucao/blog/4704582、干货:相信看了准备活动,基本上就会了,这个比起下面那个方法实在是简单多了直接上指令:
? | $ sudo vi /usr/lib/systemd/system/nginx .service #输入下面内容,并保存 [Unit] Description=nginx
- high performance web server Documentation=http: //nginx .org /en/docs/ After=network.target
remote-fs.target nss-lookup.target [Service] Type=forking PIDFile= /run/nginx .pid ExecStartPre= /usr/sbin/nginx -t
-c /etc/nginx/nginx .conf ExecStart= /usr/sbin/nginx -c /etc/nginx/nginx .conf ExecReload= /bin/kill -s
HUP $MAINPID ExecStop= /bin/kill -s
QUIT $MAINPID PrivateTmp= true [Install] WantedBy=multi-user.target |
? | #修改权限 $ sudo chmod +x /usr/lib/systemd/system/nginx .service # /etc/systemd/system/multi-user .target.wants/ $ sudo systemctl enable nginx.service #现在可以使用下面的指令来控制nginx啦 $ sudo systemctl start nginx.service $ sudo systemctl reload nginx.service $ sudo systemctl restart nginx.service $ sudo systemctl stop nginx.service #日志 $
journalctl -f -u nginx.service |
注意上面的几个路径
? | #下面这几个路径是你的nginx安装的目录,务必不要弄错。 PIDFile= /run/nginx .pid ExecStartPre= /usr/sbin/nginx -t
-c /etc/nginx/nginx .conf ExecStart= /usr/sbin/nginx -c /etc/nginx/nginx .conf |
上面的方法是不是简单非常多?操作简单了,效率还高了,RedHat/CentOS 果然还是走在了时代的前例,赞一个。
二、普通方法:
1、新建立脚本:
?输入以下内容(下面这段脚本网上很多,直接拷贝 ):
? | #!/bin/sh # # nginx - this script starts and stops the nginx daemin # # chkconfig: - 85 15 # description:Nginx is an HTTP(S) server, HTTP(S) reverse \ # proxy and IMAP/POP3 proxy server # processname: nginx # config:/etc/nginx/nginx.conf # pidfile: /run/nginx/nginx.pid # Source function library. . /etc/rc .d /init .d /functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ "$NETWORKING" = "no" ]
&& exit 0 nginx= "/usr/sbin/nginx" prog=$( basename $nginx) NGINX_CONF_FILE= "/etc/nginx/nginx.conf" lockfile= /var/lock/nginx .lock start() { [
-x $nginx ] || exit 5 [
-f $NGINX_CONF_FILE ] || exit 6 echo -n
$ "Starting $prog: " daemon $nginx -c $NGINX_CONF_FILE retval=$? echo [
$retval - eq 0
] && touch $lockfile return $retval } stop() { echo -n
$ "Stopping $prog: " killproc $prog -QUIT retval=$? echo [
$retval - eq 0
] && rm -f $lockfile return $retval } restart() { configtest
|| return $? stop start } reload() { configtest
|| return $? echo -n
$ "Reloading $prog: " killproc $nginx -HUP RETVAL=$? echo } force_reload() { restart } configtest() { $nginx -t -c $NGINX_CONF_FILE } rh_status() { status $prog } rh_status_q() { rh_status
> /dev/null 2>&1 } case "$1" in start) rh_status_q
&& exit 0 $1 ;; stop) rh_status_q
|| exit 0 $1 ;; restart|configtest) $1 ;; reload) rh_status_q
|| exit 7 $1 ;; force-reload) force_reload ;; status) rh_status ;; condrestart|try-restart) rh_status_q
|| exit 0 ;; *) echo $ "Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}" exit 2 esac |
注意几个地方的配置,就是上在nginx中编译时设置的那些目录:
# config: /etc/nginx/nginx.conf# pidfile: /run/nginx/nginx.pidnginx="/usr/sbin/nginx"NGINX_CONF_FILE="/etc/nginx/nginx.conf"lockfile=/var/lock/nginx.lock
2、添加到服务
? | $ chmod a+x /etc/init .d /nginx $ chkconfig --add nginx $ chkconfig --list nginx nginx 0:off 1:off 2:off 3:off 4:off 5:off 6:off |
上面其实就是在/etc/rc.d/rc5.d/目录下创建了一个链接。如下:
? | $ cd /etc/rc .d /rc5 .d/ $
ll | grep nginx lrwxrwxrwx. 1 root root 15 6月24 16:14 K15nginx -> .. /init .d /nginx |
3、使用
? | $ service nginx start $ service nginx stop $ service nginx restart $ service nginx reload $ /etc/init .d /nginx start $ /etc/init .d /nginx stop $ /etc/init .d /nginx restart $ /etc/init .d /nginx reload |
这样的操作就简单多了。
4、问题:
如果有下面的错误提示,去看看目录是否在该文件,如果实在是存在,且脚本无错,则考虑文件的格式是不是正确,网上有用工具转的比如:doc2unix 。
env: /etc/init.d/nginx: 没有那个文件或目录我的做法是直接复制下内容:
? | $ rm /etc/init .d /nginx $ vi /etc/init .d /nginx |
再把内容复制进去,保存,
? | $ chmod a+x /etc/init .d /nginx |
记得修改权限。