首页 文章 精选 留言 我的

精选列表

搜索[centos],共5623篇文章
优秀的个人博客,低调大师

Centos7 Python3.7 执行 RPi.GPIO

一、GPIO介绍 图中箭头所指,焊脚是4方的,表明是物理引脚1。 二、测试硬件连接是否可以 物理引脚1是3.3v电压(火线),39好引脚是GND(零线),连接电阻和二极管,应该是常亮的,如下图连接: 图中:三个电阻,每个是100欧,串联为300欧。二极发光管有正负极之分,长脚为正极,断脚为负极。 三、软件测试(前提已经安装RPi.GPIO) 1.硬件连接图如下:39号引脚和7号引脚(与1好引脚在同一列,第4排) 2.软件控制: 执行如下命令: sudo /usr/local/python371/bin/ipython 输入如下代码: import RPi.GPIO as GPIO GPIO.setwarnings(False) GPIO.setmode(GPIO.BCM) GPIO.setup(4,GPIO.OUT) GPIO.output(4,GPIO.HIGH) # GPIO.output(4,GPIO.LOW) ## 最后执行,将电压降下来 3.效果图如下: 四、遇到的问题: 如果不使用sudo或使用root用户执行,会报错,显示如下: In [4]: GPIO.setup(4,GPIO.OUT) --------------------------------------------------------------------------- RuntimeError Traceback (most recent call last) RuntimeError: No access to /dev/mem. Try running as root! 使用软件控制硬件,总算迈出第一步。!!!!

优秀的个人博客,低调大师

centos7搭建mongodb3.4.6集群

0、需要环境 安装包:mongodb-linux-x86_64-3.4.6.tgz 安装路径:/usr/mongodb 服务器: 192.168.177.131/132/133 mongos 20000 config server 21000 shard1 20001 shard2 20002 shard3 20003 1、解压到 /usr/local 解压后重命名为mongodb,方便以后操作 2、创建目录 mkdir -p mongodb/mongos/log mkdir -p mongodb/config-server/data mkdir -p mongodb/config-server/log mkdir -p mongodb/shard1/data mkdir -p mongodb/shard1/log mkdir -p mongodb/shard2/data mkdir -p mongodb/shard2/log mkdir -p mongodb/shard3/data mkdir -p mongodb/shard3/log 其中data目录存放数据,log目录存放日志 mongos服务不存放数据,所以不需要数据目录,只需要log目录 3、配置服务器 config server vim /usr/local/mongodb/config-server.conf systemLog: destination: file path: "/usr/local/mongodb/config-server/log/config-server.log" logAppend: true storage: dbPath: "/usr/local/mongodb/config-server/data" journal: enabled: true directoryPerDB: true net: port: 21000 processManagement: fork: true pidFilePath: "/usr/local/mongodb/config-server/config-server.pid" sharding: clusterRole: configsvr replication: replSetName: configServer 冒号(:)和配置之间需要有空格 启动三台服务器 cd mongodb bin/mongod -f config-server.conf 登录任意一台配置服务器,初始化 #连接 mongodb/bin/mongo --port 21000 config = { _id : "configServer", members : [ {_id : 0, host : "192.168.177.131:21000" }, {_id : 1, host : "192.168.177.132:21000" }, {_id : 2, host : "192.168.177.133:21000" } ] } #初始化副本集 rs.initiate(config); #查看分区状态 rs.status(); 4、分片副本集 shard vim /usr/local/mongodb/shard1.conf systemLog: destination: file path: "/usr/local/mongodb/shard1/log/shard1.log" logAppend: true storage: dbPath: "/usr/local/mongodb/shard1/data" journal: enabled: true directoryPerDB: true net: port: 20001 processManagement: fork: true pidFilePath: "/usr/local/mongodb/shard1/shard1.pid" sharding: clusterRole: shardsvr replication: replSetName: shard1 启动三台服务器: cd mongodb bin/mongod -f shard1.conf 登陆任意一台服务器,初始化副本集 mongo --port 20001 #使用admin数据库 use admin config = { _id : "shard1", members : [ {_id : 0, host : "192.168.177.131:20001" }, {_id : 1, host : "192.168.177.132:20001" }, {_id : 2, host : "192.168.177.133:20001" } ] } #初始化副本集 rs.initiate(config); #查看分区状态 rs.status(); 配置第二,三个分片副本集,方法同第六步。 注意端口改为20002 20003 systemLog: destination: file path: "/usr/local/mongodb/shard2/log/shard2.log" logAppend: true storage: dbPath: "/usr/local/mongodb/shard2/data" journal: enabled: true directoryPerDB: true net: port: 20002 processManagement: fork: true pidFilePath: "/usr/local/mongodb/shard2/shard2.pid" sharding: clusterRole: shardsvr replication: replSetName: shard2 systemLog: destination: file path: "/usr/local/mongodb/shard3/log/shard3.log" logAppend: true storage: dbPath: "/usr/local/mongodb/shard3/data" journal: enabled: true directoryPerDB: true net: port: 20003 processManagement: fork: true pidFilePath: "/usr/local/mongodb/shard3/shard3.pid" sharding: clusterRole: shardsvr replication: replSetName: shard3 启动三台服务器: cd mongodb bin/mongod -f shard2.conf bin/mongod -f shard3.conf 登陆任意一台服务器,初始化副本集 mongo --port 20002 mongo --port 20003 #使用admin数据库 use admin config = { _id : "shard2", members : [ {_id : 0, host : "192.168.177.131:20002" }, {_id : 1, host : "192.168.177.132:20002" }, {_id : 2, host : "192.168.177.133:20002" } ] } config = { _id : "shard3", members : [ {_id : 0, host : "192.168.177.131:20003" }, {_id : 1, host : "192.168.177.132:20003" }, {_id : 2, host : "192.168.177.133:20003" } ] } #初始化副本集 rs.initiate(config); #查看分区状态 rs.status(); 5、路由服务器 mongos vim /usr/local/mongodb/mongos.conf systemLog: destination: file path: "/usr/local/mongodb/mongos/log/mongos.log" logAppend: true net: port: 20000 bindIp: 0.0.0.0 processManagement: fork: true pidFilePath: "/usr/local/mongodb/mongos/mongos.pid" sharding: configDB: configReplSet/192.168.177.131:21000,192.168.177.132:21000,192.168.177.133:21000 启动三台服务器: cd mongodb bin/mongos -f mongos.conf 注意此处启动使用的是mongos 6、启用分片 目前搭建了mongodb配置服务器、路由服务器,各个分片服务器,不过应用程序连接到mongos路由服务器并不能使用分片机制,还需要在程序里设置分片配置,让分片生效。 #登陆任意一台mongos mongo --port 20000 #使用admin数据库 use admin #串联路由服务器与分配副本集 sh.addShard("shard1/192.168.177.131:20001,192.168.177.132:20001,192.168.177.133:20001"); sh.addShard("shard2/192.168.177.131:20002,192.168.177.132:20002,192.168.177.133:20002"); sh.addShard("shard3/192.168.177.131:20003,192.168.177.132:20003,192.168.177.133:20003"); #查看集群状态 sh.status() 至此集群已经搭建完成。 7、测试 连接mongos bin/mongo --port 20000 首先启动某个Database(数据库)的Sharding(分片)功能 mongos> sh.enableSharding("test") 对testDB数据库里的collection logs进行shard,shard key是sn字段,shard策略是hashed。使用hashed策略旨在让mongodb将数据均匀分布,如果使用{"sn",1}进行range shard,数据会按照大小顺序分布,就会出现某个shard数据很多,其他的很少的现象。 mongos> sh.shardCollection("testDB.logs", { "sn" : "hashed" } ) 查看shard信息 mongos> sh.status() 添加测试数据 mongos> use testDB mongos> for(var i=1; i<=100000; i++){db.log.insert({sn:i, msg:'Message ' + i});} 等待一段时间 查看log的shard信息 mongos> db.logs.stats() 可以看到三个分片几乎平均的保存了数据。 33143 33755 33102 { "sharded" : true, "capped" : false, "ns" : "testDB.logs", "count" : 100000, "size" : 5688895, "storageSize" : 1773568, "totalIndexSize" : 3944448, "indexSizes" : { "_id_" : 983040, "sn_hashed" : 2961408 }, "avgObjSize" : 56, "nindexes" : 2, "nchunks" : 6, "shards" : { "shard1" : { "ns" : "testDB.logs", "size" : 1920351, "count" : 33755, "avgObjSize" : 56, "storageSize" : 634880, "capped" : false, ... "ok" : 1 }, "shard2" : { "ns" : "testDB.logs", "size" : 1885397, "count" : 33143, "avgObjSize" : 56, "storageSize" : 544768, "capped" : false, ... "ok" : 1 }, "shard3" : { "ns" : "testDB.logs", "size" : 1883147, "count" : 33102, "avgObjSize" : 56, "storageSize" : 593920, "capped" : false, ... "ok" : 1 } }, "ok" : 1 } 8、后期运维 mongodb的启动顺序是,先启动配置服务器,在启动分片,最后启动mongos. /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/config-server.conf /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/shard1.conf /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/shard2.conf /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/shard3.conf /usr/local/mongodb/bin/mongos -f /usr/local/mongodb/mongos.conf 关闭时,直接killall杀掉所有进程 killall mongod killall mongos 没有killall命令的使用<yum install psmisc>安装

优秀的个人博客,低调大师

CentOS7.X安装php-7.x.x

安装php 安装准备 yum install \ vim \ gcc \ gcc-c++ \ wget \ make \ re2c \ libtool \ automake \ autoconf \ curl-devel \ libpng-devel \ libxml2-devel \ libxslt-devel \ openssl-devel \ freetype-devel \ bzip2-devel \ libicu-devel \ libuuid-devel \ libmcrypt-devel \ postgresql-devel \ -y 安装php cd /root wget http://cn2.php.net/distributions/php-7.2.6.tar.gz tar -zxvf php-7.2.6.tar.gz cd php-7.2.6 ./configure \ --prefix=/usr/local/php \ --enable-mysqlnd \ --with-openssl \ --enable-fpm # 如果在/usr/local/apache/路径下安装了apache并且想让php运行在apache下,需要加上: # --with-apxs2=/usr/local/apache/bin/apxs # 或 --with-apxs2=/usr/local/apache/bin/apxs2 # apxs在有些apache发行版中已经改名为apxs2 make make install # 如果在/usr/local/apache/路径下安装了apache并且想让php运行在apache下,apache不需要重新编译 # 这时候/usr/local/apache/modules/下多了一个libphp7.so文件 # 编辑/etc/httpd/httpd.conf添加如下行: LoadModule php7_module modules/libphp7.so DocumentRoot "/www" <FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch> # 编辑/www/index.php添加如下行: <?php phpinfo(); # 重启apache # 访问http://xxx.xxx.xxx.xxx/index.php 生成php.ini、php-fpm.conf、www.conf # 检查php.ini是否正确放置(只需要第一行不为none) /usr/local/php/bin/php --ini 部署环境执行: cp ./php.ini-production /usr/local/php/lib/php.ini 开发环境执行: cp ./php.ini-development /usr/local/php/lib/php.ini # 拷贝php-fpm.conf cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf # PHP7才执行(PHP5中,www.conf的配置项在php-fpm.conf) cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf php.ini常规配置 # 下载cacert.pem cd /usr/local/php/lib wget https://curl.haxx.se/ca/cacert.pem vim /usr/local/php/lib/php.ini ;php版本信息隐藏 expose_php=Off ;防止显示php错误输出,Off: 不输出但存入日志 display_errors=Off ;防止用户将可执行文件伪装成静态文件(如图片、文档)上传后,通过访问WEB页面执行该文件 cgi.fix_pathinfo=0 ;允许上传单个文件最大20M upload_max_filesize=20M ;session.name如果自己开发程序可以改,但如果是部署已有项目,修改后可能导致session相关功能异常 session.name=self_key ;每请求10次session的key,检查1次key是否需要过期删除 session.gc_probability=1 session.gc_divisor=1000 ;设置session默认5分钟(300秒)过期 session.gc_maxlifetime=1440 ;时区中国上海 date.timezone=Asia/Shanghai ;curl、openssl配置cacert.pem curl.cainfo=/usr/local/php/lib/cacert.pem openssl.cafile=/usr/local/php/lib/cacert.pem ESC :wq 配置php-fpm.conf vim /usr/local/php/etc/php-fpm.conf pid=run/php-fpm.pid error_log=log/php-fpm.log # 如开启该配置↓,下一步不可跳过 rlimit_files=51200 ESC :wq 调整最大文件打开数(数值仅供参考,如上一步骤未配置rlimit_files,本步可跳过) # 在文件末尾添加 vim /etc/security/limits.conf * soft nproc 65535 * hard nproc 65535 * soft nofile 65535 * hard nofile 65535 ESC :wq 配置www.conf(内存较大、较小两套方案) vim /usr/local/php/etc/php-fpm.d/www.conf user=www group=www # 静态分配子进程(内存1G,计划为php分配 640M 内存) pm=static pm.max_children=20 pm.start_servers=15 pm.min_spare_servers=10 pm.max_spare_servers=20 pm.process_idle_timeout=10s pm.max_requests=500 slowlog=log/$pool.log.slow php_admin_value[memory_limit]=32M # 动态分配子进程(内存1G,计划为php分配 640M 内存) pm=dynamic pm.max_children=20 pm.start_servers=15 pm.min_spare_servers=10 pm.max_spare_servers=20 pm.process_idle_timeout=10s pm.max_requests=500 slowlog=log/$pool.log.slow php_admin_value[memory_limit]=32M ESC :wq # 以下配置仅供了解,不建议这样使用 listen=127.0.0.1:9000 若改为 listen=/usr/local/php/var/run/php-fpm.sock 则nginx配置 fastcgi_pass 127.0.0.1:9000; 要改为 fastcgi_pass unix:/usr/local/php/var/run/php-fpm.sock; 将php加入环境变量 vim /etc/profile export PATH=$PATH:/usr/local/php/bin ESC :wq source /etc/profile 安装composer # 下载(需要先安装zlib扩展) cd /usr/local/php/bin curl -sS https://getcomposer.org/installer | /usr/local/php/bin/php mv ./composer.phar ./composer composer -V 启动php并设置开机启动 # 添加www用户 useradd www mkdir /www chown -R www:www /www chown -R www:www /usr/local/php # 进入单元文件目录 cd /etc/systemd/system vim php7.service [Unit] Description=Start php7 on boot. After=network.target [Service] User=root Group=root Type=forking ExecStart=/usr/local/php/sbin/php-fpm ExecReload=/bin/kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid` ExecStop=/bin/kill -INT `cat /usr/local/php/var/run/php-fpm.pid` PrivateTmp=true [Install] WantedBy=multi-user.target ESC :wq # 修改文件权限为只有root用户可以编辑该文件 chown -R root:root /etc/systemd/system/php7.service chmod -R 644 /etc/systemd/system/php7.service # 更新systemd systemctl daemon-reload systemctl enable php7 systemctl start php7 查看运行情况 # 查看主进程、子进程 ps aux | grep php-fpm # 查看pid文件(存在即成功) ll /usr/local/php/var/run/ php进程操作 # 平滑关闭 kill -INT `cat /usr/local/php/var/run/php-fpm.pid` # 平滑重启 kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid` 安装php扩展 cd /root/php-7.2.6/ext/xxxx /usr/local/php/bin/phpize ----------------------------------------------------------- | phpize时注意如下: | 这里如果说没发现config.m4 | cp ./config0.m4 ./config.m4 ----------------------------------------------------------- ./configure --with-php-config=/usr/local/php/bin/php-config ----------------------------------------------------------- | 安装GD库configure时注意如下: | 这里为了排版加了'|',按住Alt键选取吧... | yum install \ | libXpm-devel \ | libpng-devel \ | libjpeg-devel \ | libwebp-devel \ | -y \ | | ./configure \ | --with-xpm-dir \ | --with-png-dir \ | --with-jpeg-dir \ | --with-webp-dir \ | --with-zlib-dir \ | --with-freetype-dir \ ----------------------------------------------------------- make ----------------------------------------------------------- | make注意如下: | 重复安装PHP预编译的扩展,会报错 | Installing shared extensions: | /usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/ | cp: cannot stat 'modules/*': No such file or directory | make: *** [install-modules] Error 1 | 所以不要重复安装,通过 php -m 查看已经安装的扩展。 ----------------------------------------------------------- ----------------------------------------------------------- | 这里注意,安装mcrypt要先安装libmcrypt(有些版本Linux系统) | cd /usr/local/src | wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz | cd libmcrypt-2.5.7 | ./configure | make | make install ----------------------------------------------------------- make install vim /usr/local/php/lib/php.ini extension=xxxx.so ESC :wq Zend扩展: ----------------------------------------------------------- | 设置opcache.max_accelerated_files时 | 先执行以下命令来获取php文件数 | find . -type f -print | grep php | wc -l | 然后在以下质数集合中,找到一个恰好比该值大的值 | 223, 463, 983, 1979, 3907, 7963, 16229, 32531, 65407, 130987 | opcache安装,配置php.ini: | | zend_extension=opcache.so | opcache.enable_cli=1 | opcache.memory_consumption=256 | opcache.interned_strings_buffer=16 | opcache.max_accelerated_files=32531 | opcache.validate_timestamps=1 | opcache.revalidate_freq=60 | opcache.fast_shutdown=1 ----------------------------------------------------------- ZendOpcache的最佳设置参考链接 常用扩展('-'表示可能已经安装的扩展,安装前检查已安装扩展,防止重复安装) bcmath - ctype curl - date - fileinfo gd - hash - iconv intl - json mbstring mcrypt - mysqlnd - openssl - pcre - PDO pdo_mysql pdo_pgsql sockets zip zlib mongo (wget http://pecl.php.net/get/mongo-1.6.14.tgz [php7.x.x不再需要]) mongodb (wget http://pecl.php.net/get/mongodb-1.2.9.tgz) redis (wget http://pecl.php.net/get/redis-3.1.2.tgz) uuid (wget http://pecl.php.net/get/uuid-1.0.4.tgz) fastcommon (见FastDFS安装) fastdfs_client (见FastDFS安装) Zend: opcache (文档地址: http://php.net/manual/zh/opcache.installation.php) php重新编译 cd /root/php-7.2.6 make distclean ./configure \ --prefix=/usr/local/php \ --enable-mysqlnd \ --with-openssl \ --enable-fpm \ make make install 领支付宝红包支持作者

优秀的个人博客,低调大师

解决centos7 网卡启动不了,修复方法

刚刚装好的虚拟机突然不能上网了,报错很诡异,具体报错如下: /etc/init.d/network restart Restarting network (via systemctl): Job for network.service failed because the control process exited with error code. See "systemctl status network.service" and "journalctl -xe" for details. [失败] 使用systemctl status network.service命令查看结果如下: network.service - LSB: Bring up/down networking Loaded: loaded (/etc/rc.d/init.d/network) Active:failed(Result: exit-code) since 三 2016-08-17 11:34:36 CST; 54s ago Docs: man:systemd-sysv-generator(8) Process: 3847 ExecStart=/etc/rc.d/init.d/network start (code=exited, status=1/FAILURE) 8月 17 11:34:36 python.cn network[3847]: RTNETLINK answers: File exists 8月 17 11:34:36 python.cn network[3847]: RTNETLINK answers: File exists 8月 17 11:34:36 python.cn network[3847]: RTNETLINK answers: File exists 8月 17 11:34:36 python.cn network[3847]: RTNETLINK answers: File exists 8月 17 11:34:36 python.cn network[3847]: RTNETLINK answers: File exists 8月 17 11:34:36 python.cn network[3847]: RTNETLINK answers: File exists 8月 17 11:34:36 python.cn systemd[1]: network.service: control process exited, code=exited status=1 8月 17 11:34:36 python.cn systemd[1]:Failed to start LSB: Bring up/down networking. 8月 17 11:34:36 python.cn systemd[1]: Unit network.service entered failed state. 8月 17 11:34:36 python.cn systemd[1]: network.service failed. 查看系统日志,报错如下: Aug 17 11:34:36 python network: RTNETLINK answers: File exists Aug 17 11:34:36 python network: RTNETLINK answers: File exists Aug 17 11:34:36 python network: RTNETLINK answers: File exists Aug 17 11:34:36 python network: RTNETLINK answers: File exists Aug 17 11:34:36 python network: RTNETLINK answers: File exists Aug 17 11:34:36 python network: RTNETLINK answers: File exists Aug 17 11:34:36 python network: RTNETLINK answers: File exists Aug 17 11:34:36 python network: RTNETLINK answers: File exists Aug 17 11:34:36 python network: RTNETLINK answers: File exists Aug 17 11:34:36 python systemd: network.service: control process exited, code=exited status=1 Aug 17 11:34:36 python systemd:Failed to start LSB: Bring up/down networking. Aug 17 11:34:36 python systemd: Unit network.service entered failed state. Aug 17 11:34:36 python systemd: network.service failed. Aug 17 11:36:28 python systemd: Starting LSB: Bring up/down networking... Aug 17 11:36:29 python network: 正在打开环回接口: 无法载入文件 '/etc/sysconfig/network-scripts/ifcfg-lo' Aug 17 11:36:29 python network: 无法载入文件 '/etc/sysconfig/network-scripts/ifcfg-lo' Aug 17 11:36:29 python network: 无法载入文件 '/etc/sysconfig/network-scripts/ifcfg-lo' Aug 17 11:36:29 python network: 无法载入文件 '/etc/sysconfig/network-scripts/ifcfg-lo' Aug 17 11:36:29 python network: [ 确定 ] Aug 17 11:36:29 python network: 正在打开接口 eno16777736: 错误:激活连接失败:No suitable device found for this connection. 经查,确认/etc/sysconfig/network-scripts/ifcfg-lo文件是存在的。问题出现在哪里呢?无法,只好百度一下吧,百度出来的结果竟然基本一样。 百度答案: mac地址不对,修改mac地址。 也许有人确实是mac问题,但是莫名其妙怎么可能mac地址更改了,除非你添加新网卡或者克隆的虚拟机。 我特么真笑了,天下百度文章一大抄啊。。。。。。。。 没办法了,Google一下吧,偶然看到一个文章,大意是跟系统自带的NetworkManager这个管理套件有关系,关掉就可以解决。 试一下: systemctl stop NetworkManager systemctl disable NetworkManager//解决问题的命令!!! Removed symlink /etc/systemd/system/multi-user.target.wants/NetworkManager.service. Removed symlink /etc/systemd/system/dbus-org.freedesktop.NetworkManager.service. Removed symlink /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service. 重新启动网络: systemctl start network.service ifconfig |grep eno eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.192 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::20c:29ff:fe3d:b305 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:3d:b3:05 txqueuelen 1000 (Ethernet) RX packets 2 bytes 120 (120.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 22 bytes 3551 (3.4 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 网络正常启动,访问正常。

优秀的个人博客,低调大师

CentOS下设置nginx开机自动启动和chkconfig管理

Nginx 是一个很强大的高性能Web和反向代理服务器。虽然使用命令行可以对nginx进行各种操作,比如启动等,但是还是根据不太方便。下面介绍在linux下安装后,如何设置开机自启动。 首先,在linux系统的/etc/init.d/目录下创建nginx文件,使用如下命令: vim/etc/init.d/nginx 在脚本中添加如下命令: #!/bin/sh # #nginx-thisscriptstartsandstopsthenginxdaemon # #chkconfig:-8515 #description:NGINXisanHTTP(S)server,HTTP(S)reverse\ #proxyandIMAP/POP3proxyserver #processname:nginx #config:/etc/nginx/nginx.conf #config:/etc/sysconfig/nginx #pidfile:/var/run/nginx.pid #Sourcefunctionlibrary. ./etc/rc.d/init.d/functions #Sourcenetworkingconfiguration. ./etc/sysconfig/network #Checkthatnetworkingisup. ["$NETWORKING"="no"]&&exit0 nginx="/usr/sbin/nginx" prog=$(basename$nginx) NGINX_CONF_FILE="/etc/nginx/nginx.conf" [-f/etc/sysconfig/nginx]&&./etc/sysconfig/nginx lockfile=/var/lock/subsys/nginx make_dirs(){ #makerequireddirectories user=`$nginx-V2>&1|grep"configurearguments:"|sed's/[^*]*--user=\([^]*\).*/\1/g'-` if[-z"`grep$user/etc/passwd`"];then useradd-M-s/bin/nologin$user fi options=`$nginx-V2>&1|grep'configurearguments:'` foroptin$options;do if[`echo$opt|grep'.*-temp-path'`];then value=`echo$opt|cut-d"="-f2` if[!-d"$value"];then #echo"creating"$value mkdir-p$value&&chown-R$user$value fi fi done } start(){ [-x$nginx]||exit5 [-f$NGINX_CONF_FILE]||exit6 make_dirs echo-n$"Starting$prog:" daemon$nginx-c$NGINX_CONF_FILE retval=$? echo [$retval-eq0]&&touch$lockfile return$retval } stop(){ echo-n$"Stopping$prog:" killproc$prog-QUIT retval=$? echo [$retval-eq0]&&rm-f$lockfile return$retval } restart(){ configtest||return$? stop sleep1 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/null2>&1 } case"$1"in start) rh_status_q&&exit0 $1 ;; stop) rh_status_q||exit0 $1 ;; restart|configtest) $1 ;; reload) rh_status_q||exit7 $1 ;; force-reload) force_reload ;; status) rh_status ;; condrestart|try-restart) rh_status_q||exit0 ;; *) echo$"Usage:$0{start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}" exit2 esac 这个脚本其实也不是我写的,谁写的呢,nginx官方写的,脚本地址:http://wiki.nginx.org/RedHatNginxInitScript,不过要注意,如果你是自定义编译安装的nginx,需要根据您的安装路径修改下面这两项配置: nginx=”/usr/sbin/nginx” 修改成nginx执行程序的路径。 NGINX_CONF_FILE=”/etc/nginx/nginx.conf” 修改成配置文件的路径。 保存脚本文件后设置文件的执行权限: chmoda+x/etc/init.d/nginx 然后,就可以通过该脚本对nginx服务进行管理了: /etc/init.d/nginxstart /etc/init.d/nginxstop 使用chkconfig进行管理 上面的方法完成了用脚本管理nginx服务的功能,但是还是不太方便,比如要设置nginx开机启动等。这时可以使用chkconfig来设置。 先将nginx服务加入chkconfig管理列表: chkconfig--add/etc/init.d/nginx 加完这个之后,就可以使用service对nginx进行启动,重启等操作了。 servicenginxstart servicenginxstop 设置终端模式开机启动: chkconfignginxon chkconfig命令的使用方法,就不多数啦,可以自行搜索 另外这里还有一个网友分享的脚本(脚本地址:http://blog.163.com/qsc0624@126/blog/static/140324073201312734548701/): #!/bin/bash #nginxStartupscriptfortheNginxHTTPServer #itisv.0.0.2version. #chkconfig:-8515 #description:Nginxisahigh-performancewebandproxyserver. #Ithasalotoffeatures,butit'snotforeveryone. #processname:nginx #pidfile:/var/run/nginx.pid #config:/usr/local/nginx/conf/nginx.conf nginxd=/usr/local/nginx/sbin/nginx nginx_config=/usr/local/nginx/conf/nginx.conf nginx_pid=/var/run/nginx.pid RETVAL=0 prog="nginx" #Sourcefunctionlibrary. ./etc/rc.d/init.d/functions #Sourcenetworkingconfiguration. ./etc/sysconfig/network #Checkthatnetworkingisup. [${NETWORKING}="no"]&&exit0 [-x$nginxd]||exit0 #Startnginxdaemonsfunctions. start(){ if[-e$nginx_pid];then echo"nginxalreadyrunning...." exit1 fi echo-n$"Starting$prog:" daemon$nginxd-c${nginx_config} RETVAL=$? echo [$RETVAL=0]&&touch/var/lock/subsys/nginx return$RETVAL } #Stopnginxdaemonsfunctions. stop(){ echo-n$"Stopping$prog:" killproc$nginxd RETVAL=$? echo [$RETVAL=0]&&rm-f/var/lock/subsys/nginx/var/run/nginx.pid } #reloadnginxservicefunctions. reload(){ echo-n$"Reloading$prog:" #kill-HUP`cat${nginx_pid}` killproc$nginxd-HUP RETVAL=$? echo } #Seehowwewerecalled. case"$1"in start) start ;; stop) stop ;; reload) reload ;; restart) stop start ;; status) status$prog RETVAL=$? ;; *) echo$"Usage:$prog{start|stop|restart|reload|status|help}" exit1 esac exit$RETVAL 使用此脚本的时候,也同样需要将配置路径修改成自己的

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

用户登录
用户注册