首页 > 代码库 > golang 应用的部署相关技术
golang 应用的部署相关技术
nohup命令
在 linux 下面部署,我们可以利用 nohup 命令,把应用部署在后端,如下所示:
nohup ./yourapp &
这样你的应用就跑在了 Linux 系统的守护进程
nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。nohup就是不挂起的意思( no hang up)。
一般如何如下两种方式使用它:
nohup command 或者 nohup command &
这之间的差别是带&的命令行,即使terminal(终端)关闭,或者电脑死机程序依然运行(前提是你把程序递交到服务器上);
使用它需要注意的问题是:它把标准输出(STDOUT)和标准错误(STDERR)结果输出到nohup.txt文件这个看似很方便,但是当输出很大的时候,nohup.txt文件会非常大,或者多个后台命令的时候大家都会输出到nohup.txt文件,不利于查找结果和调试程序。
相关请参考:http://www.2cto.com/os/201301/185701.html
kill –HUP 进程ID 热升级
先用 ps -ef | grep 应用名 找到应用所在的进程ID。
想简单的停止和重启进程。如下:
# kill -HUP PID
该命令让Linux和缓的执行进程关闭,然后立即重启。在配置应用程序的时候,这个命令很方便,在对配置文件修改后需要重启进程时就可以执行此命令。
注意,是重启进程重新读取配置文件。
参考:http://beego.me/docs/advantage/reload.md
crontab 定时任务
添加crontab 任务
对于crontab任务有两种方式,一种为root用户可以直接添加;一种为非root用户需要crontab -e方式来添加;以root用户为例,执行下面命令:
vi /etc/crontab
在最下面添加一条:
3 4 * * * 需要执行的命令
意思就是在每天的4点3分执行这个文件;
写好后保存退出crontab。
重启crontab服务
/etc/init.d/crond restart
参考:http://jingyan.baidu.com/article/11c17a2c796354f446e39ded.html
如何查看crontab定时任务是否执行
针对Linux系统的查询方法(含Redhat、SUSE)
看 /var/log/cron这个文件就可以,可以用tail -f /var/log/cron观察
如果在这个文件看到类似下面的请看:
Sep 12 10:40:02 dev crond[30256]: (root) CMD (/usr/local/mysql-standard-5.0.26-linux-i686/CollectionDataBackup/collectionDataBackup.sh)
Sep 12 10:40:03 dev crond[30255]: (root) MAIL (mailed 376 bytes of output but got status 0x0047 )
这里表示这个程序执行反馈的信息被Mail了,但是mail设置的问题,没有发送。当然如果发送了,则可以去下面目录去看执行提示信息:
mail任务(Linux UNIX)在 /var/spool/mail/root 文件中,有crontab执行日志的记录,用tail -f /var/spool/mail/root 即可查看最近的crontab执行情况。
参考:http://jingyan.baidu.com/article/73c3ce28e7b298e50343d925.html
tail 命令参数请看:http://www.2cto.com/os/201111/110143.html
如果不想用Mail, 则可以把执行输出自行进行控制到一个文件,自行查看。类似如下方式:
0 12 * * * /opt/oracle/rmanbackup.sh > /home/oracle/backup.log 2>&1
上传rz及下载sz
sz:将选定的文件发送(send)到本地机器
rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到服务器(receive)
参考:http://www.cnblogs.com/ghj1976/p/3742062.html