zoukankan      html  css  js  c++  java
  • [Linux] 检查是否已有进程在运行

    出处:sblim-sfcb-1.4.9 / sfcBroker.c

    int process_is_running()
    {
            #define STRBUF_LEN 512
            #define BUF_LEN 30
            struct dirent *dp = NULL;
            char *strbuf = malloc(STRBUF_LEN);
            char *buf = malloc(BUF_LEN);
            int mypid = getpid();
            int ret = 0;
    
            DIR *dir = opendir("/proc");
            while ((dp = readdir(dir)) != NULL) {
                if (isdigit(dp->d_name[0])) {
                    sprintf(buf, "/proc/%s/exe", dp->d_name);
                    memset(strbuf, 0, STRBUF_LEN);
                    if (readlink(buf, strbuf, STRBUF_LEN) == -1) continue;
                    if (strstr(strbuf, "进程名字") != NULL) {
                        ret = strtol(dp->d_name, NULL, 0);
                        if (ret == mypid) { ret = 0; continue; }
                        break;
                     }
                }
             }
    
             closedir(dir);
             free(buf);
             free(strbuf);
             return(ret);
    }
  • 相关阅读:
    2月3日
    照片测试
    家属签证计时
    我来了
    090204 阴天
    重要提醒to 小爱
    小毛小毛
    C++Primer学习日程
    资料库字段存储文件记录的方式
    本日有点忙
  • 原文地址:https://www.cnblogs.com/liujx2019/p/11400210.html
Copyright © 2011-2022 走看看