Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

This question already has an answer here:

I start jenkins web server using command java -jar jenkins.war. It works great. When I close terminal the application stops.

How to make it run even if I close terminal session ?

share|improve this question

marked as duplicate by blade19899, Aditya, Jorge Castro, don.joey, Mitch Dec 16 '13 at 16:42

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

5 Answers 5

up vote 4 down vote accepted

The simplest and most direct method is nohup java -jar jenkins.war &. "nohup" means "no hangup", which is vintage terminology for not ending a session when the terminal disconnects. "&" just starts the process in the background, similar to what would happen if you press CTRL+Z (and then type bg 1) while the process is running in the foreground.

WARNING: nohup, by default, sends output of the process to a text file. If you are not careful, that file can become dangerously large in some cases. Treat it like any other ever-growing log file.

share|improve this answer

If you are frequently starting a service like Jenkins that you want to have run in the background and not close when you end your session, you should consider implementing an init script for it. Look at the scripts in /etc/init.d/ for examples. These are short shell scripts that allow you to do things like service httpd start and service httpd stop and even service httpd status to find out if httpd is running, or if it's supposed to be running but isn't.

There is a great example script for the Hudson service, which functions very similarly to Jenkins (they are sibling forks of the same codebase) here: https://wiki.jenkins-ci.org/display/JENKINS/HudsonUbuntuLinuxStartupScript

share|improve this answer

Install screen. In the terminal type screen and then run you application. Press CTRL+A,CTRL+D to deattache the screen and type the terminal screen -r to reattache. You can reach you screen through ssh etc...

apt-get install screen
share|improve this answer

Use nohup

No Hang Up. Run a command immune to hangups, runs the given command with hangup signals ignored, so that the command can continue running in the background after you log out.ManPage

nohup Command &

In you case it would be

nohup java -jar jenkins.war &
share|improve this answer
    
forgot & to background the process. –  Rmano Dec 12 '13 at 16:42
    
@Rmano Thanks :) –  Mitch Dec 12 '13 at 16:44

append & after your command , I mean

java -jar jenkins.war &
share|improve this answer
1  
may I know why downvote ? –  AgentCool Dec 12 '13 at 16:28
1  
Probably because in modern shells, if you do not do nohup (or disown the process afterward) it will be killed when the shell exits. –  Rmano Dec 12 '13 at 16:41
    
I have tested firefox from terminal before I have posted my answer here. –  AgentCool Dec 12 '13 at 16:44
    
Probably firefox ignores SIGHUP natively --- don't really know. I tried with sleep and it is killed exiting the shell. –  Rmano Dec 12 '13 at 16:57
    
@rajagenupula When you type firefox from a console, you're running a script that later launches the firefox binary detached from your console. That step is not automatic for most commands. –  Sparr Dec 13 '13 at 19:49

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