debian中设置tomcat开机启动

2015年3月11日 16:57

  • 解压  
在tomcat的bin目录下有commons-daemon-native.tar.gz文件
➜  bin  tar -zxvf commons-daemon-native.tar.gz
  • 编译
➜  unix  ./configure 
...
➜  unix  make
  • 复制到bin目录  
编译后生成jsvc文件,复制到bin目录下
cp jsvc /home/wyq/software/apache-tomcat-7.0.59/bin/
  • 设置启动用户
打开daemon.sh文件,默认用户是tomcat,可以自己更改
TOMCAT_USER=wyq
  • 启动/停止
sh daemon.sh start/stop
  • 修改daemon.sh配置
在daemon.sh文件中添加以下配置
pkenv=/home/wyq/pkenv
JAVA_HOME=$pkenv/jdk1.7.0_75
CATALINA_HOME=$pkenv/apache-tomcat-7.0.59
CATALINA_BASE=$pkenv/apache-tomcat-7.0.59
DAEMON_HOME=$pkenv/apache-tomcat-7.0.59/bin
TOMCAT_USER=wyq
  • 添加到/etc/init.d
cd /etc/init.d
ln -s xxxx/bin/daemon.sh tomcat
  • 以service方式启动/停止
sudo service tomcat start/stop
重启机器,tomcat会跟随启动启动.
 

评论(0) 阅读(1397)

一台机器部署多个tomcat

2015年3月11日 14:02

修改conf/server.xml文件中的三个端口
8005 用于停止Tomcat的端口
8009 Apache的侦听端口
8080 默认的连接端口
 

评论(0) 阅读(1346)

debian7.5设置开机启动(insserv)

2015年3月06日 16:55

  • 示例脚本
在/etc/init.d目录下新建脚本hello.sh
#!/bin/bash
#
### BEGIN INIT INFO
# Provides:          hello
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Should-Start:      $network $time
# Should-Stop:       $network $time
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Description:       hello world
### END INIT INFO
#

echo "hello world" > /home/wyq/a.log
  • 以update-rc.d命令添加开机启动
wyq@localhost:/etc/init.d$ sudo update-rc.d hello defaults 90
update-rc.d: using dependency based boot sequencing
update-rc.d: error: unable to read /etc/init.d/hello
在debian7系统中,会出现上面错误,需要该用insserv命令
  • 以insserv命令添加开机启动
wyq@localhost:/etc/init.d$ sudo insserv /etc/init.d/hello.sh
insserv: warning: script 'hello.sh' missing LSB tags and overrides
如果脚本没有添加metadata信息,会出现上面错误.
  • insserv用法
insserv myserver #添加服务
insserv -r myserver #删除服务
insserv -d myserver #使用默认的runlevels
 

评论(0) 阅读(1988)

httpsqs基本用法

2015年3月04日 09:14

基于 HTTP GET/POST 协议的轻量级开源简单消息队列服务

启动/停止

  • 启动
httpsqs -d -x /opt/httpsqs/data
  • 停止
pkill httpsqs
  • 参数
-l <ip_addr> 监听的IP地址,默认值为 0.0.0.0 
-p <num> 监听的TCP端口(默认值:1218)
-x <path> 数据库目录,目录不存在会自动创建(例如:/opt/httpsqs/data)
-t <second> HTTP请求的超时时间(默认值:3)
-s <second> 同步内存缓冲区内容到磁盘的间隔秒数(默认值:5)
-c <num> 内存中缓存的最大非叶子节点数(默认值:1024)
-m <size> 数据库内存缓存大小,单位:MB(默认值:100)
-i <file> 保存进程PID到文件中(默认值:/tmp/httpsqs.pid)
-a <auth> 访问HTTPSQS的验证密码(例如:mypass123)
-d 以守护进程运行
-h 显示这个帮助

入队

  • get方式
http://localhost:1218/?name=your_queue_name&opt=put&data=经过URL编码的文本消息&auth=mypass123
  • post方式
http://localhost:1218/?name=your_queue_name&opt=put&auth=mypass123
  • 返回
HTTPSQS_PUT_OK    入队成功
HTTPSQS_PUT_ERROR 入队失败
HTTPSQS_PUT_END 队列已满

出队

  • get方式
http://localhost:1218/?charset=utf-8&name=your_queue_name&opt=get&auth=mypass123
  • post方式
http://localhost:1218/?charset=gb2312&name=your_queue_name&opt=get&auth=mypass123
  • 返回
HTTPSQS_GET_END 没有未读消息

获取状态

  • get方式
http://localhost:1218/?name=your_queue_name&opt=status&auth=mypass123
  • 返回
HTTP Simple Queue Service v1.7
------------------------------
Queue Name: wyq                      队列名
Maximum number of queues: 1000000    最大数
Put position of queue (1st lap): 18  入队位置
Get position of queue (1st lap): 18  出队位置
Number of unread queue: 0            未读数量
  • get方式
http://localhost:1218/?name=your_queue_name&opt=status_json&auth=mypass123
  • 返回json方式
{
"name":"wyq",
"maxqueue":1000000,
"putpos":18,   入队位置
"getpos":18,   出队位置
"putlap":1,    队列写入初始点
"getlap":1,    队列读取初始点
"unread":0     未读数量
}

重置

  • get方式
http://localhost:1218/?name=your_queue_name&opt=reset&auth=mypass123
  • 返回
HTTPSQS_RESET_OK    重置成功
HTTPSQS_RESET_ERROR 重置失败

更改参数

  • 设置最大队列数
http://localhost:1218/?name=your_queue_name&opt=maxqueue&num=1000000000&auth=mypass123
  • 返回
HTTPSQS_MAXQUEUE_OK     更改最大队列数成功
HTTPSQS_MAXQUEUE_CANCEL 操作被取消
  • 设置刷新内存缓冲区到磁盘间隔时间
http://localhost:1218/?name=your_queue_name&opt=synctime&num=10&auth=mypass123
  • 返回
HTTPSQS_SYNCTIME_CANCEL  本次操作被取消
HTTPSQS_SYNCTIME_OK   修改间隔时间成功
 
 
HTTPSQS_AUTH_FAILED 密码校验失败  
HTTPSQS_ERROR  全局错误
 

评论(0) 阅读(2784)

fedora中安装httpsqs

2015年3月04日 09:06

依赖包

  • libevent事件驱动
sudo yum install libevent  libevent-devel
 
  • tokyocabinet日本人开发的dbm数据库
sudo yum install tokyocabinet  tokyocabinet-devel
 
  • * zlib数据压缩的函数库, bzip2压缩工具
sudo yum install zlib zlib-devel bzip2-devel bzip2 bzip2-libs

安装

  • 下载
wget http://httpsqs.googlecode.com/files/httpsqs-1.7.tar.gz
 
  • 编译安装
make
make install
 

Tags: httpsqs;队列
评论(0) 阅读(983)

debian中vim显示中文出现乱码

2015年3月03日 10:23

在/etc/vim/vimrc中添加配置
set termencoding=utf-8
set encoding=utf-8

 

Tags: debian;vim
评论(0) 阅读(970)

Host '10.0.2.2' is not allowed to connect to this MariaDB server

2015年2月27日 16:01

Host '10.0.2.2' is not allowed to connect to this MariaDB server
mysql的root用户,默认只允许本地访问。当使用客户端连接远程mysql服务器,出现上面错误。只要在mysql.user表添加远程用户即可.
  • 进入mysql命令行界面
➜  ~  mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 13
Server version: 5.5.41-MariaDB MariaDB Server

Copyright (c) 2000, 2014, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
  • 执行下面insert
insert into mysql.user(Host,User,Password) values("%","root",password("root"));insert into mysql.user(Host,User,Password) values("%","root",password("root"));
 

评论(0) 阅读(2946)

内外网同时访问阿里rds数据库

2015年2月26日 16:42

阿里对它的rds数据库作了访问限制,内外网不能同时使用,并且切到外网访问,会收取流量费。每次更新数据库时,要先切到外网模式,再链接rds进行操作,太麻烦了. 怎么做可以让内网、外网同时访问? 想到了将rds的端口映射到ecs,再访问ecs,即可访问rds.
 
在ecs主机上,运行下面命令,将rds映射到外网
ssh -NfgT  -L 3306:rds地址:3306 用户名@localhost
 
更新完之后,再kill掉上面命令.
 

Tags: rds
评论(0) 阅读(1385)

debian创建用户没有宿主目录

2015年2月26日 15:23

在debian系统中,以useradd创建用户,默认不会创建密码和宿主目录. debian建议用adduser创建用户,它会提示创建初始密码和目录.
root@xxxx:/home# adduser wyq
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_CTYPE = "zh_CN.UTF-8",
LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
Adding user `pkadmin' ...
Adding new group `wyq' (1003) ...
Adding new user `wyq' (1002) with group `wyq' ...
Creating home directory `/home/wyq' ...
Copying files from `/etc/skel' ...
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
Changing the user information for wyq
Enter the new value, or press ENTER for the default
Full Name []:       
Room Number []: 
Work Phone []: 
Home Phone []: 
Other []: 
Is the information correct? [Y/n] y
 

Tags: debian
评论(0) 阅读(1324)

chkconfig用法

2015年2月24日 21:46

chkconfig是一种简单的命令行工具,用于帮助管理员对/etc/rc[0-6].d目录层次下的众多的符号链接进行直接操作。

语法

chkconfig --list [name]
chkconfig --add name
chkconfig --del name
chkconfig [--level levels] name <on|off|reset>
chkconfig [--level levels] name
 
--list 显示系统服务的运行状态(on或off)  
--add  增加系统服务  
--del  删除系统服务  
--level 指定系统服务在哪个执行等级中开启或关闭  
      等级0表示:表示关机  
      等级1表示:单用户模式  
      等级2表示:无网络连接的多用户命令行模式  
      等级3表示:有网络连接的多用户命令行模式  
      等级4表示:不可用  
      等级5表示:带图形界面的多用户模式  
      等级6表示:重新启动  

基本用法

  • 查询当前所有自动启动的服务
chkconfig --list 
chkconfig --list [name] //查询特定服务
  • 开机启动开启/关闭
chkconfig httpd on/off
  • 指定服务运行等级
chkconfig --level 35 httpd on/off
设定httpd在等级3和5为开机运行服务.
  • 新增服务
chkconfig --add httpd
加入到chkconfig列表
  • 删除服务
chkconfig --del httpd
从chkconfig列表移除服务
 

评论(0) 阅读(1151)