王爵的技术博客

一个javaer的日常

centos下nginx启动、重启、关闭操作

centos下nginx的启动、关闭、重启操作

Nginx的启动

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

其中 -c 参数指定配置文件路径。

Nginx的停止

Nginx支持以下几种信号控制:

  • TERM, INT 快速关闭
  • QUIT 从容关闭
  • HUP 平滑重启
  • USR1 重新打开日志文件,在切割文件时用处大
  • USR2 平滑升级
  • WINCH 从容关闭工作进程

我们可以通过信号停止Nginx主进程,首先,我们需要通过 ps -ef | grep 命令获得master进程的PID,或者通过cat pid文件获得主进程号。下面是几个典型的停止语句:

#从容停止Nginx  
kill -QUIT master进程号  
#快速停止Nginx  
kill -TERM master进程号  
#强制停止Nginx  
kill -9 master进程号  

swift常用的第三方库列表

https://github.com/Alamofire/Alamofire 网络请求库

https://github.com/SwiftyJSON/SwiftyJSON 更易用的json

https://github.com/danielgindi/ios-charts 图形图表库

https://github.com/MengTo/Spring 封装了一些动画的库

https://github.com/Ramotion/animated-tab-bar tabbar实现动画

https://github.com/mxcl/PromiseKit swift版的promise

https://github.com/andreamazz/AMScrollingNavbar NavBar跟随ScrollView一起滚动

https://github.com/onevcat/Kingfisher 异步的图片下载和缓存库

https://github.com/ankurp/Dollar.swift 封装了一些常用数据类型的操作,和lodash、underscore类似

https://github.com/Haneke/HanekeSwift 轻量级的缓存库

https://github.com/duemunk/Async 异步操作库,类似promise

https://github.com/pNre/ExSwift 封装了一些常用数据类型的操作

https://github.com/ReactiveX/RxSwift swift版的响应式编程框架

https://github.com/mattt/Surge 封装了一些数学计算

https://github.com/stephencelis/SQLite.swift 操作sqlite

https://github.com/xmartlabs/Eureka 表单生成器

https://github.com/Hearst-DD/ObjectMapper JSON到Object映射

https://github.com/lexrus/VPNOn 一个vpn的app

https://github.com/uacaps/PageMenu 类似安卓的顶部tab切换

https://github.com/ephread/Instructions 实现引导介绍的库

https://github.com/Yalantis/Koloda 卡片动画

https://github.com/kasketis/netfox 网络请求debug库

https://github.com/mattdonnelly/Swifter 封装了twitter的api

https://github.com/AliSoftware/SwiftGen 快速生成ios资源,如国际化、图片等

https://github.com/gontovnik/DGElasticPullToRefresh 弹性的下拉刷新

https://github.com/mac-cain13/R.swift 输入代码的时候自动补全资源名称,和android studio/eclipse类似

https://github.com/badoo/Chatto 一个轻量级的聊天框架

https://github.com/CosmicMind/MaterialKit swift版的Material UI设计界面

https://github.com/gavinbunney/Toucan 实现图片的圆形、方形等裁剪

https://github.com/daltoniam/Starscream WebSocket库

https://github.com/Mozharovsky/CVCalendar 日历控件

https://github.com/ReactKit/SwiftTask Promise + progress + pause + cancel + retry for Swift

https://github.com/Ramotion/paper-switch switch按钮实现动画

https://github.com/SwiftReactive/SugarRecord 数据库操作的一些封装

https://github.com/radex/SwiftyUserDefaults 封装了的静态NSUserDefaults

https://github.com/entotsu/PullToBounce 下拉刷新

https://github.com/waynewbishop/SwiftStructures swift实现数据结构

https://github.com/Alamofire/AlamofireImage Alamofire的Image组件

CocoaPods安装遇到的坑

CocoaPods是一个负责管理iOS项目中第三方开源代码的工具。如果你没听说过,也不想用,那就别往下看了。

  1. CocoaPods的安装

需要用到ruby,Mac系统自带ruby,但如果不是最新的系统,最好更新一下。
ruby的软件源rubygems.org被墙了,所以先换一下源,命令行下依次执行3条命令

$ gem sources --remove https://rubygems.org/
$ gem sources -a http://ruby.taobao.org/
$ gem sources -l

然后升级gem

$ sudo gem update --system

完了就开始安装CocoaPods

$ sudo gem install cocoapods
$ pod setup

出现Setting up CocoaPods master repo,半天没有任何反应。原因无他,因为那堵墙阻挡了cocoapods.org。。。
gitcafe和oschina都是国内的服务器,可以用它们CocoaPods索引库的镜像:

$ pod repo remove master
$ pod repo add master https://gitcafe.com/akuandev/Specs.git
$ pod repo update

如果想用oschina的镜像也可以把第二条命令 换成 http://git.oschina.net/akuandev/Specs.git即可

第二条命令执行的时候会比较耗时,这个时候要去把整个specs仓库clone一下,下载到 ~/.cocoapods里;
cd 到该目录里,用du -sh *命令来查看文件大小,每隔一会看看,最终大小是190多M。

使用wget下载xcode

由于家里网速比较悲伤。。。只能先用服务器下载好,然后传到七牛的空间里这样比较快。我喜欢自己下载官方的,so 没有直接去别的CDN或者站点去下载。

在浏览器中直接下载xocde是很简单的,只要登录你的appleid,然后找到 https://developer.apple.com/xcode/download/ 即可下载,我一看卧槽4个G,家里肯定吃不消了。。

于是用自己日本的服务器来下载,直接使用 wget 下载 http://adcdownload.apple.com/Developer_Tools/Xcode_7.3_beta_5/Xcode_7.3_beta_5.dmg 是行不通的,有cookie验证,我们可以使用chrome扩展把cookie下载下来然后使用wget,这招也可以用到其他的下载中,比如JDK。

步骤

  1. 安装 cookies.txt Chrome 扩展(需FQ)
  2. 登录到Apple Developer并点击下载Xcode
  3. 运行cookie.txt扩展并下载cookie文件到本地
  4. 将cookie文件传到服务器然后运行如下命令
wget --load-cookies=cookies.txt -c http://adcdownload.apple.com/Developer_Tools/Xcode_7.3_beta_5/Xcode_7.3_beta_5.dmg

上传到七牛的空间可以看这里的文档,这里就不吐口水了。

Reactjs-JQuery-Vuejs-Extjs-Angularjs对比

写在前面

前端越来越混乱了,当然也可以美其名曰:繁荣。
当新启动一个前端项目,第一件事就是纠结:使用什么框架,重造什么轮子?
那么,希望看完此篇,能够给你一个清晰的认识,或者让你更加地纠结和无所适从 = =!
本篇拿一注册功能作为样本,使用各种框架去实现功能,从而对比各种方式的优劣。