|
Edit
源码版本为MongoDB 2.6分支
mongo主程序入口分析
mongo是MongoDB提供的一个执行JavaScript脚本的客户端工具,可以用来和服务端交互,2.6版本的MongoDB已经是使用了V8 JS引擎,由于本人对JS几乎没研究,所以本篇只是大概研究一下执行过程,对于JS的东西就先略过。
mongo的main函数在dbshell.cpp文件中,同mongod一样提供了Windows和Linux两个版本,然后调用int _main( int argc, char* argv[], char **envp )函数。
mongo::isShell = true; //用来判断是否启动shell
setupSignals(); //设置Linux信号处理函数
mongo::shell_utils::RecordMyLocation( argv[ 0 ] );
shellGlobalParams.url = "test";//默认连接到test数据库
//同mongod,根据命令行初始化全局变量
mongo::runGlobalInitializersOrDie(argc, argv, envp);
// hide password from ps output
for ( int i = 0; i < (argc-1); ++i ) {
if ( !strcmp(argv, "-p") || !strcmp( argv, "--password" ) ) {
char* arg = argv[i + 1];
while ( *arg ) {
*arg++ = 'x';
}
}
}
if (!mongo::serverGlobalParams.quiet)
cout |
|
|