转载请注明出处:http://www.cnblogs.com/shamoyuu/p/linux_4.html

安装pm2守护进程,备用

npm install -g pm2

创建/srv/www文件夹

mkdir /srv/www

进入/srv/www文件夹

cd /srv/www

克隆服务器的本地仓库

git clone /data/git/test.git

把/srv/www的权限给git

chown -R git:git /srv/www

创建git钩子文件post-receive,会在接收完push请求后执行,这个文件不一定存在,不过无所谓

vim /data/git/test.git/hooks/post-receive

内容如下

echo "==========================================="
cd /srv/www/test
unset GIT_DIR
git pull
if [ -f "package.json" ];then
echo "存在package.json文件,开始部署"
echo -e "node version: \c"
node -v
echo -e "npm version: v\c"
npm -v
# 杀掉进程test-production
pm2 delete test-production
# 删除node_modules
rm -rf node_modules
# 重新初始化
npm install
# 以test-production为名启动pm2的守护进程
pm2 start index.js -i --name "test-production"
else
echo "package.json文件不存"
fi
echo "==========================================="

然后让这个文件变为可执行文件

chmod +x /data/git/test.git/hooks/post-receive

然后把权限重新给git一下

chown -R git:git /data/git

然后在客户端提交一下试试看

注意remote开头的那一段,都是服务器端打印的。

不过此时pm2的守护进程是由git用户开启的,其他用户看不到,pm2在start的时候虽然有个--username的参数,貌似是可以指定用户,但是并没有什么效果,有谁知道可以说一下

所以如果要操作此守护进程,比如查看实时日志,需要切换到git用户,。

好了,现在git自动部署已经完成了。

【前端】CentOS 7 系列教程之四: 配置 git 服务器自动部署的更多相关文章

  1. Centos 6.5使用vsftpd配置FTP服务器教程

    Centos 6.5使用vsftpd配置FTP服务器教程什么是vsftpd vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序.特点是小巧轻快,安全易用.vsftpd 的名字代表”ver ...

  2. RabbitMQ系列教程之四:路由(Routing)(转载)

    RabbitMQ系列教程之四:路由(Routing) (使用Net客户端) 在上一个教程中,我们构建了一个简单的日志系统,我们能够向许多消息接受者广播发送日志消息. 在本教程中,我们将为其添加一项功能 ...

  3. Windows使用Apache2配置Git服务器

    Windows使用Apache2配置Git服务器 本文地址:http://www.cnblogs.com/cnscoo/p/3373095.html Git下载: 网站:https://code.go ...

  4. [转载]Ubuntu安装配置 git 服务器和客户端

    原文地址:Ubuntu安装配置 git 服务器和客户端作者:ding404 1.配置前准备 服务器:安装ssh server另外还装了gitosis做git的权限管理 sudo apt-get ins ...

  5. 做了一个简易的git 代码自动部署脚本

    做了一个简易的git 代码自动部署脚本 http://my.oschina.net/caomenglong/blog/472665 发表于2个月前(2015-06-30 21:08)   阅读(200 ...

  6. 【前端】CentOS 7 系列教程之三: 搭建 git 服务器

    转载请注明出处:http://www.cnblogs.com/shamoyuu/p/linux_3.html 上一篇我们安装好了git,这一篇我们搭建git服务器 创建一个用户组 groupadd g ...

  7. 【前端】CentOS 7 系列教程之一: 安装 node 最新版

    转载请注明出处:http://www.cnblogs.com/shamoyuu/p/linux_1.html 此系列教程从零开始,安装node.mysql.git,nginx.并且设置git自动部署. ...

  8. Git系列教程三 配置与基本命令

    一.安装Git 网上有很多安装教程,可以参考.这里使用的是Windows版本的Git,点击这里下载. 二.基本设置 安装完成后,通过点击鼠标右键就可以看到新添加了俩个Git命令:Git GUI Her ...

  9. CentOS安装配置Git服务器(gitosis)

    主要参考: http://blog.csdn.net/dengjianqiang2011/article/details/9260435 辅助参考: http://freeloda.blog.51ct ...

随机推荐

  1. Angular Material & Hello World

    前言 Angular Material(下称Material)的组件样式至少是可以满足一般的个人开发需求(我真是毫无设计天赋),也是Angular官方推荐的组件.我们通过用这个UI库来快速实现自己的i ...

  2. input标签附带提示文字(bootstrap里面输入框的两侧同时添加额外元素)

    一直不太喜欢用定位,今天写界面的时候,要在输入框右边添加默认的元素符号. 第一次尝试,因为本身项目用的是bootstrap所以就想利用输入框的两侧同时添加额外元素. 但是写了代码发现效果不同. 第二次 ...

  3. codevs——1570 去看电影

    1570 去看电影  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解       题目描述 Description 农夫约翰带着他的一些奶牛去看电影.而他的 ...

  4. foobar2000播放APE格式音乐的解决办法

    要使foobar2000能播放APE格式的音乐需要安装Monkey's Audio Decoder的插件.操作如下: 1.登录官方插件列表,找到Monkey's Audio Decoder插件 官方插 ...

  5. Linux服务器同步网络时间

    Linux服务器运行久时,系统时间就会存在一定的误差,一般情况下可以使用date命令进行时间设置,但在做数据库集群分片等操作时对多台机器的时间差是有要求的,此时就需要使用ntpdate进行时间同步. ...

  6. Visual Studio VS如何统计代码行数

    编辑-查找和替换-在文件中查找,然后查找内容填写下面的东西,勾选使用正则表达式,点击查找全部 b*[^:b#/]+.*$   在查找结果的最后一行显示了总的行数和文件数                 ...

  7. Android新手入门2016(7)--布局

    布局,这个在服务端变成是没有的,也是服务端的人学习client的一道坎吧. 曾经用cocos2d-x写小游戏的时候就是这个非常难懂,或者能用,可是理解不多的话,非常难写出好的布局,难以适合商业化的应用 ...

  8. v-if v-else-if v-else

    1.代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <titl ...

  9. 如何正确地在React中处理事件

    1.构造器内绑定this class MyComponent extends React.Component { constructor(props) { super(props); this.sta ...

  10. jQuery Ajax Post Data Example

    http://www.formget.com/jquery-post-data/ jQuery Ajax Post Data Example Fugo Of FormGet jQuery $.post ...