diff --git a/index.coffee b/index.coffee
index cc2eacc1d65d8ede2acd622a4c692b64773ed2e6..db4608a198940f6ef254ba9cadb493c07488b386 100644
--- a/index.coffee
+++ b/index.coffee
@@ -28,17 +28,9 @@ module.exports =
 #-------------------------------------------------------------------------------
 	open: ({path}) ->
 		if atom.config.get 'gitkraken.singleInstance'
-			exec "pkill GitKraken; sleep .1 && open -Fb #{@id} --args -p '#{path}'" #, @timeout
+			@execGitKrakenSingle path
 		else
-			projects = {}
-			try
-				projects = require @tmp
-				execSync "ps #{projects[path]} | grep -q GitKraken &&
-					open -b #{@id} --args -p '#{path}'"
-			catch
-				pid = execSync "open -nb #{@id} --args -p '#{path}' & echo $!"
-				projects[path] = (parseInt pid) + 1
-				writeFile @tmp, JSON.stringify projects
+			projects = @execGitKrakenMulti path
 
 			window.addEventListener 'beforeunload', ->
 				exec "kill #{projects[path]}"
@@ -48,3 +40,31 @@ module.exports =
 		@subs.dispose()
 		window.removeEventListener 'beforeunload'
 		unlink @tmp
+
+#-------------------------------------------------------------------------------
+	execGitKrakenSingle: (path) ->
+		if process.platform == 'darwin'
+			exec "pkill GitKraken; sleep .1 && open -Fb #{@id} --args -p '#{path}'" #, @timeout
+		else if process.platform == 'linux'
+			exec "killall gitkraken; sleep .1 && gitkraken --args -p '#{path}' &> /dev/null &"
+
+#-------------------------------------------------------------------------------
+	execGitKrakenMulti: (path) ->
+		projects = {}
+		try
+			projects = require @tmp
+			if process.platform == 'darwin'
+				execSync "ps #{projects[path]} | grep -q GitKraken && open -b #{@id} --args -p '#{path}'"
+			else if process.platform == 'linux'
+				execSync "ps #{projects[path]} | grep -q gitkraken"
+		catch
+			if process.platform == 'darwin'
+				pid = execSync "open -nb #{@id} --args -p '#{path}' & echo $!"
+			else if process.platform == 'linux'
+				proc = exec "nohup gitkraken --args -p '#{path}' &>/dev/null &"
+				pid = proc.pid
+
+			projects[path] = (parseInt pid) + 1
+			writeFile @tmp, JSON.stringify projects
+
+		projects
diff --git a/package.json b/package.json
index f222adf2a0bcdc02cb4b2c79b7d5fd78c898e45f..fc04b91c3e536d9fef4a931de122d16699969c93 100644
--- a/package.json
+++ b/package.json
@@ -20,7 +20,8 @@
   "private": true,
   "license": "MIT",
   "os": [
-    "darwin"
+    "darwin",
+    "linux"
   ],
   "dependencies": {
     "sub-atom": "^1.1.0"