diff --git a/src/dnode/src/dnodeSystem.c b/src/dnode/src/dnodeSystem.c index 36232893b57b1b57c65232c297f8a20f0045f77f..a4d7e791e650352433b186bc404b2d2e11729e36 100644 --- a/src/dnode/src/dnodeSystem.c +++ b/src/dnode/src/dnodeSystem.c @@ -160,7 +160,7 @@ static void signal_handler(int32_t signum, siginfo_t *sigInfo, void *context) { syslog(LOG_INFO, "Shut down signal is %d", signum); syslog(LOG_INFO, "Shutting down TDengine service..."); // clean the system. - dInfo("shut down signal is %d, sender PID:%d", signum, sigInfo->si_pid); + dInfo("shut down signal is %d, sender PID:%d cmdline:%s", signum, sigInfo->si_pid, taosGetCmdlineByPID(sigInfo->si_pid)); // protect the application from receive another signal struct sigaction act = {{0}}; diff --git a/src/os/inc/osSysinfo.h b/src/os/inc/osSysinfo.h index 2b98f8b4bfa36e2bb5f8c5a3d2a595df2aba74ea..b592a6c679b41ecc2a30e93cfd9d1250da647bd5 100644 --- a/src/os/inc/osSysinfo.h +++ b/src/os/inc/osSysinfo.h @@ -32,6 +32,7 @@ void taosPrintOsInfo(); int taosSystem(const char * cmd) ; void taosKillSystem(); bool taosGetSystemUid(char *uid); +char *taosGetCmdlineByPID(int pid); // TAOS_OS_FUNC_SYSINFO_CORE void taosSetCoreDump(); diff --git a/src/os/src/linux/linuxEnv.c b/src/os/src/linux/linuxEnv.c index 14b40a1f1857ca7789829cb64f596ff349b7c997..5772885cb43454d147dd05dc437347bbdd15f741 100644 --- a/src/os/src/linux/linuxEnv.c +++ b/src/os/src/linux/linuxEnv.c @@ -39,4 +39,22 @@ void osInit() { strcpy(tsDnodeDir, ""); strcpy(tsMnodeDir, ""); strcpy(tsOsName, "Linux"); -} \ No newline at end of file +} + +char cmdline[1024]; + +char *taosGetCmdlineByPID(int pid) +{ + sprintf(cmdline, "/proc/%d/cmdline",pid); + FILE* f = fopen(cmdline,"r"); + if(f){ + size_t size; + size = fread(cmdline, sizeof(char), 1024, f); + if(size>0){ + if('\n'==cmdline[size-1]) + cmdline[size-1]='\0'; + } + fclose(f); + } + return cmdline; +}