taosd should not start while other process is running
This commit is contained in:
parent
60edeb4398
commit
93f3d4462d
|
@ -83,6 +83,17 @@ void taosCreateTierDirectory() {
|
||||||
mkdir(fileName, 0755);
|
mkdir(fileName, 0755);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void dnodeCheckDbRunning(const char* dir) {
|
||||||
|
char filepath[256] = {0};
|
||||||
|
sprintf(filepath, "%s/.running", dir);
|
||||||
|
int fd = open(filepath, O_WRONLY | O_CREAT | O_TRUNC, S_IRWXU | S_IRWXG | S_IRWXO);
|
||||||
|
int ret = flock(fd, LOCK_EX | LOCK_NB);
|
||||||
|
if (ret != 0) {
|
||||||
|
dError("failed to lock file:%s ret:%d, database may be running, quit", ret, filepath);
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int dnodeInitSystem() {
|
int dnodeInitSystem() {
|
||||||
char temp[128];
|
char temp[128];
|
||||||
struct stat dirstat;
|
struct stat dirstat;
|
||||||
|
@ -115,6 +126,7 @@ int dnodeInitSystem() {
|
||||||
|
|
||||||
sprintf(mgmtDirectory, "%s/mgmt", tsDirectory);
|
sprintf(mgmtDirectory, "%s/mgmt", tsDirectory);
|
||||||
sprintf(tsDirectory, "%s/tsdb", dataDir);
|
sprintf(tsDirectory, "%s/tsdb", dataDir);
|
||||||
|
dnodeCheckDbRunning(dataDir);
|
||||||
|
|
||||||
tsPrintGlobalConfig();
|
tsPrintGlobalConfig();
|
||||||
dPrint("Server IP address is:%s", tsInternalIp);
|
dPrint("Server IP address is:%s", tsInternalIp);
|
||||||
|
|
Loading…
Reference in New Issue