如何在C中运行外部程序并通过ps命令使其不可见?

时间:2017-12-26 00:55:59

标签: c++ c

我创建了一个C程序来在CentOS系统上运行外部命令。我使用system(cmd);来运行外部命令,但ps命令可以看到此命令。

以下是我的计划runit

的示例
./runit "mongo mongodb://username:password@localhost:27017/admin"

它接受一个字符串作为命令行参数,用于启动mongo shell进程。在runit的源代码中,它运行mongo shell,如下所示:

int main(int argc, char **argv){
    char *cmd = argv[1];
    printf("%s\n", cmd);
    if (argc > 1) {
        char *arg_end;    
        arg_end = argv[argc-1] + strlen (argv[argc-1]);
        *arg_end = ' ';
        }
    system(cmd);
    exit(100);
}

当我使用ps -ef | grep runit命令时,它不显示命令行参数。但它确实在我运行ps -ef |grep mongo时显示。有没有办法在system()方法中隐藏命令行参数?

0 个答案:

没有答案