C++ 如何在C中运行外部程序,并通过ps命令使其不可见?
我创建了一个C程序,在CentOS系统上运行外部命令。我使用C++ 如何在C中运行外部程序,并通过ps命令使其不可见?,c++,c,C++,C,我创建了一个C程序,在CentOS系统上运行外部命令。我使用系统(cmd)运行外部命令,但此命令可通过ps命令查看 下面是我的程序runit的一个示例: ./runit "mongo mongodb://username:password@localhost:27017/admin" 它使用字符串作为命令行参数,用于启动mongo shell进程。在runit的源代码中,它运行mongo shell,如下所示: int main(int argc, char **argv){ char
系统(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()
方法中?“只能被用户找到”-那么谁应该找不到该程序?你在问这个问题吗@mkrieger1我的意思是通过ps
命令不查找。如果不是通过ps
等命令行工具,用户如何查找程序?是否可以通过/proc
找到程序?通过基于GUI的工具top
/htop
?您不能通过ps
命令隐藏程序-至少在基于Unix的计算机上不能。