| 144 | } |
| 145 | |
| 146 | int phxsqlproxymain(int argc, char *argv[], PHXSqlProxyConfig * config) { |
| 147 | if (argc < 2) { |
| 148 | printf("Usage %s <config>\n", argv[0]); |
| 149 | exit(-1); |
| 150 | } |
| 151 | |
| 152 | SignalHandler(); |
| 153 | |
| 154 | if (argc == 3 && strcmp(argv[2], "daemon") == 0) { |
| 155 | pid_t pid = fork(); |
| 156 | if (pid > 0) { |
| 157 | exit(0); |
| 158 | } else if (pid < 0) { |
| 159 | LogError("fork fail"); |
| 160 | exit(-1); |
| 161 | } |
| 162 | } |
| 163 | |
| 164 | int ret = 0; |
| 165 | if ((ret = StartWorker<MasterIORoutine>(config, config->GetMasterWorkerConfig())) != 0) { |
| 166 | LogError("Start master worker failed, ret %d", ret); |
| 167 | printf("Start master worker failed, ret %d", ret); |
| 168 | exit(-1); |
| 169 | } |
| 170 | printf("start master worker finished ...\n"); |
| 171 | |
| 172 | if ((ret = StartWorker<SlaveIORoutine>(config, config->GetSlaveWorkerConfig())) != 0) { |
| 173 | LogError("Start slave worker failed, ret %d", ret); |
| 174 | printf("Start slave worker failed, ret %d", ret); |
| 175 | exit(-1); |
| 176 | } |
| 177 | printf("start slave worker finished ...\n"); |
| 178 | return 0; |
| 179 | } |
no test coverage detected