
# gds_ctl.py
#### 背景信息
在配置了gds.conf的情况下，就可通过gds_ctl.py控制gds的启动和停止。
#### 前置条件
只支持在Linux系统上执行该命令。执行前，需确保目录结构如下：
\|----gds
\|----gds_ctl.py
\|----config
\|-------gds.conf
\|-------gds.conf.sample
或
\|----gds
\|----gds_ctl.py
\|-------gds.conf
\|-------gds.conf.sample
"gds.conf"的内容：
```
<?xml version="1.0"?>
<config>
<gds name="gds1" ip="127.0.0.1" port="5000" data_dir="/input_data/" err_dir="/err" data_seg="100MB" err_seg="1000MB" log_file="/log/gds_log.txt" host="10.10.0.1/24" daemon='true' recursive="true" parallel="32"></gds>
</config>
```
"gds.conf"配置说明：
- name：标识名。
- ip：监听ip地址，即GDS所在的服务器IP地址。
- port：监听端口号。取值范围：1024\~65535，正整数。默认值：8098。可设置为5000。
- data_dir：数据文件存放目录。
- err_dir：错误日志文件存放目录。该目录需要拥有GDS读写权限的用户自行创建。
- data_seg：单个数据文件大小，例如100MB。
- err_seg：每个错误日志大小，例如1000MB。
- log_file：日志文件的存放路径，例如日志保存在"/log/gds_log.txt"文件中。该目录需要拥有GDS读写权限的用户自行创建。
- host：允许哪些主机连接到gds。例如填写为10.10.0.1/24，表示只允许IP网段为10.10.0.\*的主机进行连接。
- daemon：是否以DAEMON模式运行。 取值范围：
  - true为以DAEMON模式运行。
  
  - false为不以DAEMON模式运行。
   
- recursive：是否递归数据文件目录。 取值范围：
  - true为递归数据文件目录。
  
  - false为不递归数据文件目录。
   
- parallel：导入导出工作线程并发数目。 默认并发数目为8，最大为200。
  
 
#### 语法
```
gds_ctl.py [ start | stop all | stop [ ip: ] port | stop | status ]
```
#### 描述
当配置了"gds.conf"，可通过gds_ctl.py启动/停止gds。
#### 参数说明
- start 启动gds.conf中配置的gds。
  
- stop 关闭当前用户有权限关闭的经配置文件启动的gds运行实例。
  
- stop all 关闭当前用户有权限关闭的所有gds运行实例。
  
- stop \[ ip: \] port 关闭当前用户有权限关闭的特定gds运行实例。如果启动时指定了ip:port，那么停止需要指定相应的ip:port；如果启动时未指定IP，只指定port，则停止只需指定相应的port即可。如启动和停止指定不同的信息，则停止失败。
  
- status 查询通过gds.conf启动的gds实例的运行状态。
  
 
#### 示例
启动gds。
```
python3 gds_ctl.py start
```
停止由配置文件启动的gds。
```
python3 gds_ctl.py stop
```
停止所有当前用户有权限关闭的gds。
```
python3 gds_ctl.py stop all
```
停止当前用户有权限关闭的，由\[ip:\]port指定的gds。
```
python3 gds_ctl.py stop 127.0.0.1:8098
```
查询gds状态。
```
python3 gds_ctl.py status
```
