`
zsxxsz
  • 浏览: 444070 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

acl服务器模块的部署--示例

 
阅读更多

             作者:王华涛

 

acl服务器模块acl_master,通过配置文件的配置项来控制工作进程的运行。下面以例子ioctl_echo3来讲解如何配置运行。

1)下载acl源码包acl.3.0.3.src.tgz

2) #tar xzvf acl.3.0.3.src.tgz将包进行解压。

3)在acl/dist/master目录下执行命令:

#chmod a+x setup.sh

#./setup.sh /opt/acl

/opt/acl是将程序发布到这个目录下。

执行脚本后,将自动建立相应子目录在/opt/acl路径下。

4)将ioctl_echo3拷贝到/opt/acl/libexec/目录下

5)将ioctl_echo3的配置文件ioctl_echo.cf拷贝到/opt/acl/conf/service目录下。

6)将ioctl_echo.cf中的程序名修改为ioctl_echo3

ioctl_echo.cf的配置内容如下:

service server {

master_disable = no

master_service = 127.0.0.1:5001

master_type = inet

master_private = n

master_unpriv = n

master_chroot = n

master_wakeup = -

master_maxproc = 2

master_prefork = 2

master_command = ioctl_echo3

master_log = /opt/acl/var/log/ioctl_echo.log

ioctl_use_limit = 100

ioctl_idle_limit = 120

ioctl_pid_dir =  /opt/acl/var/pid

ioctl_queue_dir = /opt/acl/var

ioctl_rw_timeout = 120

ioctl_buf_size = 8192

ioctl_max_accept = 25

ioctl_owner = root

ioctl_delay_sec = 0

ioctl_delay_usec = 500

ioctl_event_mode = select

ioctl_max_threads = 250

ioctl_stacksize = 0

ioctl_access_allow = 127.0.0.1:255.255.255.255, 127.0.0.1:127.0.0.1

ioctl_quick_abort = 1

app_client_idle_limit = 12

debug_mem = 1

}

 

main.cf的配置内容如下:

default_process_limit = 250

owner_user = root

master_owner = root

owner_group = root

service_throttle_time = 60

process_name = acl_master

buf_size = 81920

rw_timeout = 60

event_delay_sec = 1

event_delay_usec = 5000

daemon_directory = /opt/acl/libexec

log_file = /opt/acl/var/log/acl_master

service_directory = /opt/acl/conf/service

queue_directory = /opt/acl/var

pid_file = /opt/acl/var/pid/acl_master.pid

scan_subdir = 0

 

 

7)在/opt/acl/sh目录下执行start.sh就可以启动acl_master进程和ioctl_echo3进程了。

8) 通过telnet 127.0.0.1 5001进行验证

 

1
1
分享到:
评论
10 楼 cl185303590 2014-11-13  
cl185303590 写道
LZ 在执行该例程时出现core文件:
#0  0x0000003099030265 in raise () from /lib64/libc.so.6
#1  0x0000003099031d10 in abort () from /lib64/libc.so.6
#2  0x00000030990296e6 in __assert_fail () from /lib64/libc.so.6
#3  0x000000000040524e in acl_msg_fatal (fmt=0x437df7 "%s(%d)->%s: exec %s: %s")
    at src/stdlib/acl_msg.c:307
#4  0x000000000042283c in acl_master_spawn (serv=0xdf1b500)
    at src/master/framework/master_spawn.c:237
#5  0x000000000043211b in master_prefork (serv=0xdf1b500)
    at src/master/framework/master_avail.c:52
#6  acl_master_avail_listen (serv=0xdf1b500)
    at src/master/framework/master_avail.c:104
#7  0x00000000004218b7 in acl_master_start_service (serv=0xdf1b500)
    at src/master/framework/master_service.c:58
#8  0x000000000041ffbe in acl_master_config ()
    at src/master/framework/master_conf.c:113
#9  0x000000000040430d in main (argc=5, argv=<value optimized out>)
    at src/master/daemon/master.c:152
每次都会在acl_msg_fatal core掉   这是为什么???忘求解答

问题解决了   是配置文件的问题
9 楼 cl185303590 2014-11-13  
LZ 在执行该例程时出现core文件:
#0  0x0000003099030265 in raise () from /lib64/libc.so.6
#1  0x0000003099031d10 in abort () from /lib64/libc.so.6
#2  0x00000030990296e6 in __assert_fail () from /lib64/libc.so.6
#3  0x000000000040524e in acl_msg_fatal (fmt=0x437df7 "%s(%d)->%s: exec %s: %s")
    at src/stdlib/acl_msg.c:307
#4  0x000000000042283c in acl_master_spawn (serv=0xdf1b500)
    at src/master/framework/master_spawn.c:237
#5  0x000000000043211b in master_prefork (serv=0xdf1b500)
    at src/master/framework/master_avail.c:52
#6  acl_master_avail_listen (serv=0xdf1b500)
    at src/master/framework/master_avail.c:104
#7  0x00000000004218b7 in acl_master_start_service (serv=0xdf1b500)
    at src/master/framework/master_service.c:58
#8  0x000000000041ffbe in acl_master_config ()
    at src/master/framework/master_conf.c:113
#9  0x000000000040430d in main (argc=5, argv=<value optimized out>)
    at src/master/daemon/master.c:152
每次都会在acl_msg_fatal core掉   这是为什么???忘求解答
8 楼 zsxxsz 2013-11-20  
huangzuduan 写道
huangzuduan 写道
LZ,通过在acl目录下make install时,最后出现

root@17kailu:/acl# make install

begin copy file...
cp -f lib_acl/master/acl_master ./dist/master/libexec//
cp -f lib_acl/lib/lib_acl.a ./dist/lib//
cp -Rf lib_acl/include/* ./dist/include/acl/
cp -f lib_protocol/lib/lib_protocol.a ./dist/lib//
cp -Rf lib_protocol/include/* ./dist/include/protocol/
cp -f lib_acl_cpp/lib/lib_acl_cpp.a ./dist/lib//
cp -Rf lib_acl_cpp/include/acl_cpp/* ./dist/include/acl_cpp/

看了下我的uname -a
Linux 17kailu 3.2.0-4-amd64 #1 SMP Debian 3.2.41-2 x86_64 GNU/Linux
uname -s
Linux
uname -p
unknown
发现没有复制正确的文件到指定位置


看来在安装脚本在 Debian 下有问题,你可以修改一下
7 楼 huangzuduan 2013-11-20  
huangzuduan 写道
LZ,通过在acl目录下make install时,最后出现

root@17kailu:/acl# make install

begin copy file...
cp -f lib_acl/master/acl_master ./dist/master/libexec//
cp -f lib_acl/lib/lib_acl.a ./dist/lib//
cp -Rf lib_acl/include/* ./dist/include/acl/
cp -f lib_protocol/lib/lib_protocol.a ./dist/lib//
cp -Rf lib_protocol/include/* ./dist/include/protocol/
cp -f lib_acl_cpp/lib/lib_acl_cpp.a ./dist/lib//
cp -Rf lib_acl_cpp/include/acl_cpp/* ./dist/include/acl_cpp/

看了下我的uname -a
Linux 17kailu 3.2.0-4-amd64 #1 SMP Debian 3.2.41-2 x86_64 GNU/Linux
uname -s
Linux
uname -p
unknown
发现没有复制正确的文件到指定位置
6 楼 huangzuduan 2013-11-20  
LZ,通过在acl目录下make install时,最后出现
5 楼 zsxxsz 2013-11-20  
huangzuduan 写道
LZ您好,在执行setup后,我在opt/acl/libexec中并没有看见有acl_master程序,
再将例子中make好的程序放到该 目录 下,再去执行sh/start.sh 报没有找到acl_master
像这种问题怎么解决呢,看了下setup.sh脚本,是/acl/dist/master/libexec/对应版本下文件,但我发现/acl/dist/master/libexec/对应版本下是没有文件的

你还可以参考另一篇部署的文章:http://zsxxsz.iteye.com/blog/1773413
4 楼 zsxxsz 2013-11-20  
huangzuduan 写道
LZ您好,在执行setup后,我在opt/acl/libexec中并没有看见有acl_master程序,
再将例子中make好的程序放到该 目录 下,再去执行sh/start.sh 报没有找到acl_master
像这种问题怎么解决呢,看了下setup.sh脚本,是/acl/dist/master/libexec/对应版本下文件,但我发现/acl/dist/master/libexec/对应版本下是没有文件的

你可以在 acl/lib_acl 下 make,然后 make install,这样 acl_master 程序会被拷贝到 acl/dist/master/libexec/linux64(或linux32)目录下,然后将你写的程序也拷贝至相同目录下,同时将配置文件拷贝至 acl/dist/master/conf/service 下,这样就可以运行 ./setup.sh 了,这个 setup.sh 脚本会拷贝程序及配置文件至你指定的目录,同时将配置文件中的路径进行替换。
3 楼 huangzuduan 2013-11-20  
LZ您好,在执行setup后,我在opt/acl/libexec中并没有看见有acl_master程序,
再将例子中make好的程序放到该 目录 下,再去执行sh/start.sh 报没有找到acl_master
像这种问题怎么解决呢,看了下setup.sh脚本,是/acl/dist/master/libexec/对应版本下文件,但我发现/acl/dist/master/libexec/对应版本下是没有文件的
2 楼 zsxxsz 2013-11-09  
可以尝试在 vim 的环境设置,打开 ~/.vimrc,然后加入一行:
set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
1 楼 java软件乐园 2013-11-09  
你好,在[6)将ioctl_echo.cf中的程序名修改为ioctl_echo3]中看到中文是乱码
Ï̳߳صÄ×î´óÏß³ÌÊý
        ioctl_max_threads = 250
#       Ï̵߳ĶÑÕ»¿Õ¼ä´óС£¬µ¥Î»Îª×Ö½Ú£¬0±íʾʹÓÃϵͳȱʡֵ
        ioctl_stacksize = 0
#       ÔÊÐí·ÃÎÊ udserver µÄ¿Í»§¶ËIPµØÖ··¶Î§
        ioctl_access_allow = 127.0.0.1:255.255.255.255, 127.0.0.1:127.0.0.1

#       µ± acl_master Í˳öʱ£¬Èç¹û¸ÃÖµÖÃ1Ôò¸Ã³ÌÐò²»µÈËùÓÐÁ¬½Ó´¦ÀíÍê±Ï±ãÁ¢¼´Í˳ö
        ioctl_quick_abort = 1

##      app_main.c ÐèÒªµÄ²ÎÊýÏî
#       ¿Í»§¶ËÁ¬½ÓµÄ×î´ó¿ÕÏÐʱ¼ä·§Öµ
        app_client_idle_limit = 12
像这种
本机系统centos6.2,acl版本acl.3.0.13.tgz,本机已经是utf-8编码,其他中文文件没有乱码,可不可以去掉中文,用英文表示
Global site tag (gtag.js) - Google Analytics