Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I started playing with MongoDB on Lucid. Now I would like to run a DB and Config server on the same box. They both use the same binary to launch, but with different config files and running on different ports. All directories for log and lib is split so one goes to mongodb and the other to mongoconf.

Each process can be started without any problems on their own.

start mongodb 
stop mongodb
start mongoconf
stop mongoconf

But if I try to start both, the second one would just start and exit. Using 'initctl log-priority debug' I got the following in the logs.

Jan  6 12:44:12 mongo4 init: event_finished: Finished started event
Jan  6 12:44:12 mongo4 init: job_process_handler: Ignored event 1 (1) for process 5690
Jan  6 12:44:12 mongo4 init: mongoconf (mongoconf) main process (5690) terminated with status 1
Jan  6 12:44:12 mongo4 init: mongoconf (mongoconf) goal changed from start to stop
Jan  6 12:44:12 mongo4 init: mongoconf (mongoconf) state changed from running to stopping

man 5 init shows that you can use instance names to differentiate the two. I tried using 'instance mongoconf' in the on upstart script and 'instance mongodb' in the other one, and it still fails. I can manually start the other process, so there is definitely no conflicts on port numbers or directories.

Any ideas on what to try or how to get output on why it is 'terminated with status 1'?

Thanx

share|improve this question
add comment

2 Answers

up vote 2 down vote accepted

For you intrepid sysadmins that find this, upstart doesn't just test the paths, it appears to test that the inode is different. This means that Hard-linking the file is out of the question too. the only way to run the same binary multiple times is to make multiple copies.

share|improve this answer
add comment

Doing some testing, I found that upstart uses the full path to the binary to see if it is the same process. So making a copy of the binary in a different location will allow you to create two upstart scripts.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.