diff --git a/core/command/background/ajax.php b/core/command/background/ajax.php
new file mode 100644
index 0000000000000000000000000000000000000000..e9cd1405ebd87b3fcee35495656c2d7aacc181b8
--- /dev/null
+++ b/core/command/background/ajax.php
@@ -0,0 +1,33 @@
+<?php
+/**
+* The MIT License (MIT)
+*
+* Copyright (c) 2015 Christian Kampka <christian@kampka.net>
+*
+* Permission is hereby granted, free of charge, to any person obtaining a copy
+* of this software and associated documentation files (the "Software"), to deal
+* in the Software without restriction, including without limitation the rights
+* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+* copies of the Software, and to permit persons to whom the Software is
+* furnished to do so, subject to the following conditions:
+*
+* The above copyright notice and this permission notice shall be included in
+* all copies or substantial portions of the Software.
+*
+* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+* THE SOFTWARE.
+*/
+
+namespace OC\Core\Command\Background;
+
+class Ajax extends Base {
+
+	protected function getMode() {
+		return 'ajax';
+	}
+}
diff --git a/core/command/background/base.php b/core/command/background/base.php
new file mode 100644
index 0000000000000000000000000000000000000000..48fee818d0a60bd6cfadce5dfc18baf000396217
--- /dev/null
+++ b/core/command/background/base.php
@@ -0,0 +1,77 @@
+<?php
+/**
+* The MIT License (MIT)
+*
+* Copyright (c) 2015 Christian Kampka <christian@kampka.net>
+*
+* Permission is hereby granted, free of charge, to any person obtaining a copy
+* of this software and associated documentation files (the "Software"), to deal
+* in the Software without restriction, including without limitation the rights
+* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+* copies of the Software, and to permit persons to whom the Software is
+* furnished to do so, subject to the following conditions:
+*
+* The above copyright notice and this permission notice shall be included in
+* all copies or substantial portions of the Software.
+*
+* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+* THE SOFTWARE.
+*/
+
+namespace OC\Core\Command\Background;
+
+use \OCP\IConfig;
+
+use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+
+/**
+* An abstract base class for configuring the background job mode
+* from the command line interface.
+* Subclasses will override the getMode() function to specify the mode to configure.
+*/
+abstract class Base extends Command {
+
+
+	abstract protected function getMode();
+
+	/**
+	* @var \OCP\IConfig
+	*/
+	protected $config;
+
+	/**
+	* @param \OCP\IConfig $config
+	*/
+	public function __construct(IConfig $config) {
+		$this->config = $config;
+		parent::__construct();
+	}
+
+	protected function configure() {
+		$mode = $this->getMode();
+		$this
+			->setName("background:$mode")
+			->setDescription("Use $mode to run background jobs");
+	}
+
+	/**
+	* Executing this command will set the background job mode for owncloud.
+	* The mode to set is specified by the concrete sub class by implementing the
+	* getMode() function.
+	*
+	* @param InputInterface $input
+	* @param OutputInterface $output
+	*/
+	protected function execute(InputInterface $input, OutputInterface $output) {
+		$mode = $this->getMode();
+		$this->config->setAppValue( 'core', 'backgroundjobs_mode', $mode );
+		$output->writeln("Set mode for background jobs to '$mode'");
+	}
+}
diff --git a/core/command/background/cron.php b/core/command/background/cron.php
new file mode 100644
index 0000000000000000000000000000000000000000..434e88893b2bdf7e6dc4c0679829b92cf9177354
--- /dev/null
+++ b/core/command/background/cron.php
@@ -0,0 +1,33 @@
+<?php
+/**
+* The MIT License (MIT)
+*
+* Copyright (c) 2015 Christian Kampka <christian@kampka.net>
+*
+* Permission is hereby granted, free of charge, to any person obtaining a copy
+* of this software and associated documentation files (the "Software"), to deal
+* in the Software without restriction, including without limitation the rights
+* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+* copies of the Software, and to permit persons to whom the Software is
+* furnished to do so, subject to the following conditions:
+*
+* The above copyright notice and this permission notice shall be included in
+* all copies or substantial portions of the Software.
+*
+* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+* THE SOFTWARE.
+*/
+
+namespace OC\Core\Command\Background;
+
+class Cron extends Base {
+
+	protected function getMode() {
+		return 'cron';
+	}
+}
diff --git a/core/command/background/webcron.php b/core/command/background/webcron.php
new file mode 100644
index 0000000000000000000000000000000000000000..23dbe98e635242cd3d4db5451f8a756dd35f4700
--- /dev/null
+++ b/core/command/background/webcron.php
@@ -0,0 +1,33 @@
+<?php
+/**
+* The MIT License (MIT)
+*
+* Copyright (c) 2015 Christian Kampka <christian@kampka.net>
+*
+* Permission is hereby granted, free of charge, to any person obtaining a copy
+* of this software and associated documentation files (the "Software"), to deal
+* in the Software without restriction, including without limitation the rights
+* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+* copies of the Software, and to permit persons to whom the Software is
+* furnished to do so, subject to the following conditions:
+*
+* The above copyright notice and this permission notice shall be included in
+* all copies or substantial portions of the Software.
+*
+* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+* THE SOFTWARE.
+*/
+
+namespace OC\Core\Command\Background;
+
+class WebCron extends Base {
+
+	protected function getMode() {
+		return 'webcron';
+	}
+}
diff --git a/core/register_command.php b/core/register_command.php
index bcff56b8aa7c45e016a4703cff5503793f647d3f..2328bc7685fe7dd2424b5eec06559dc0a70b784f 100644
--- a/core/register_command.php
+++ b/core/register_command.php
@@ -27,6 +27,9 @@ if (\OC::$server->getConfig()->getSystemValue('installed', false)) {
 	$application->add(new OC\Core\Command\User\LastSeen());
 	$application->add(new OC\Core\Command\User\Delete(\OC::$server->getUserManager()));
 	$application->add(new OC\Core\Command\L10n\CreateJs());
+	$application->add(new OC\Core\Command\Background\Cron(\OC::$server->getConfig()));
+	$application->add(new OC\Core\Command\Background\WebCron(\OC::$server->getConfig()));
+	$application->add(new OC\Core\Command\Background\Ajax(\OC::$server->getConfig()));
 } else {
 	$application->add(new OC\Core\Command\Maintenance\Install(\OC::$server->getConfig()));
 }
diff --git a/tests/lib/command/background.php b/tests/lib/command/background.php
new file mode 100644
index 0000000000000000000000000000000000000000..7e99248053092187885f8ba061c855956c62bb88
--- /dev/null
+++ b/tests/lib/command/background.php
@@ -0,0 +1,58 @@
+<?php
+/**
+* The MIT License (MIT)
+*
+* Copyright (c) 2015 Christian Kampka <christian@kampka.net>
+*
+* Permission is hereby granted, free of charge, to any person obtaining a copy
+* of this software and associated documentation files (the "Software"), to deal
+* in the Software without restriction, including without limitation the rights
+* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+* copies of the Software, and to permit persons to whom the Software is
+* furnished to do so, subject to the following conditions:
+*
+* The above copyright notice and this permission notice shall be included in
+* all copies or substantial portions of the Software.
+*
+* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+* THE SOFTWARE.
+*/
+
+namespace Test\Command;
+
+use Test\TestCase;
+use Symfony\Component\Console\Input\StringInput;
+use Symfony\Component\Console\Output\NullOutput;
+
+use OC\Core\Command\Background\Cron;
+use OC\Core\Command\Background\WebCron;
+use OC\Core\Command\Background\Ajax;
+
+class BackgroundJobs extends TestCase {
+
+	public function testCronCommand() {
+		$config = \OC::$server->getConfig();
+		$job = new Cron($config);
+		$job->run(new StringInput(''), new NullOutput());
+		$this->assertEquals('cron', $config->getAppValue('core', 'backgroundjobs_mode'));
+	}
+
+	public function testAjaxCommand() {
+		$config = \OC::$server->getConfig();
+		$job = new Ajax($config);
+		$job->run(new StringInput(''), new NullOutput());
+		$this->assertEquals('ajax', $config->getAppValue('core', 'backgroundjobs_mode'));
+	}
+
+	public function testWebCronCommand() {
+		$config = \OC::$server->getConfig();
+		$job = new WebCron($config);
+		$job->run(new StringInput(''), new NullOutput());
+		$this->assertEquals('webcron', $config->getAppValue('core', 'backgroundjobs_mode'));
+	}
+}