Итак, обычно я запускаю процесс mongod с двумя аргументами, подобными этому
~$ mongod --dbpath /media/nhuyvan1106/0CB6-189A/linux/mongodb/data --logpath /media/nhuyvan1106/0CB6-189A/linux/mongodb.
Но я не хочу указывать аргументы каждый раз, поэтому я их сохранил в текстовый файл с именем mongo.txt с этим следующим контентом.
--dbpath /media/nhuyvan1106/0CB6-189A/linux/mongodb/data --logpath /media/nhuyvan1106/0CB6-189A/linux/mongodb
Затем I cat, который записывает и передает его через mongod, как это
~$ cat mongod.txt | mongod
Но это не сработает, mongod по-прежнему использует значение по умолчанию /data/db для аргумента --dbpath и такое же для другого аргумента. Кто-нибудь знает, как я могу это достичь?
Ubuntu и все дистрибутивы Linux с установленными утилитами GNU имеют xargs, что позволяет запускать команду с аргументами, переданными из другой команды или из предоставленного из stdin. В вашем случае то, что вы хотели бы сделать, следующее:
xargs mongod < mongo_args.txt
Здесь у вас есть mongo_args.txt, который является текстовым файлом с вашими аргументами, и он перенаправляется как stdin в xargs. Это будет объединено с mongod и будет выполняться как полная команда.