How-to Install and Start AEM As A Linux Service (CentOS and Ubuntu)


This post details on how-to setup AEM as a Service on Linux. Used CentOS 7 and Ubuntu 17.04 as an example.

Github project:


  1. AEM Installed on your server. Copy the path of the install (e.g: /mnt/crx)
  2. Java (atleast JRE) installed (To test if java is installed and the version, run this command java -version)
  3. Start AEM (e.g java -jar cq-quickstart-author-p4502.jar) once. This will generate all the necessary folders, especially /mnt/crx/crx-quickstart/bin that is required by the scripts.
  4. Create a user who will have access to the service. (e.g: aem)

Step-by-step guide

  1. You will need root access
  2. Create user aem and add to sudoers group
    • adduser aem
    • usermod -aG sudo aem
    • Test the user
      • su - aem
      • sudo ls -la /root [This is accessible by root only]
  3. Create these 2 files (Get the contents of the files based on the OS. Under /centos or /ubutnu in this project)
    • aem
    • aem.service
  4. Open aem script file and update the below
    • AEM_ROT (e.g: /mnt/crx is the root, where /mnt/crx/crx-quickstart is the full path)
    • AEM_USER (e.g: aem)
  5. SCP these files to the server
    • Copy aem to /usr/bin/aem
      • Example: From terminal on your desktop $ scp <filename> user@
    • Copy aem.service to /etc/system.d/system/aem.system
      • Example: From terminal on your desktop $ scp <filename> user@
  6. SSH to your server
    • ssh user@
  7. Give permissions to the files
    • sudo chmod u+rwx /usr/bin/aem
    • sudo chmod u+rwx /etc/system.d/system/aem.system
  8. Update
    • cd /etc/system.d/system
    • sudo systemctl enable aem.system
  9. You can restart the server or run the below commands to start AEM. Make sure you run Pre-requisite Step 2before running this command.



  • Start AEM – sudo service aem start
  • Restart AEM – sudo service aem restart
  • Stop AEM – sudo service aem stop
  • Check Status of the service sudo service aem status


  • Start AEM – sudo systemctl start aem
  • Restart AEM – sudo systemctl restart aem
  • Stop AEM – sudo systemctlstop aem
  • Check Status of AEM sudo systemctl status aem

Test if AEM is running

There are several ways we can test if AEM is running with the above commands

  1. Run the command ps -ef | grep java , you should see something like this
    • root 12958 1 5 20:39 ? 00:02:41 java -server -Xmx1024m -XX:MaxPermSize=256M -Djava.awt.headless=true,crx3,crx3tar -Djava.locale.providers=CLDR,JRE,SPI -jar crx-quickstart/app/cq-quickstart-6.4.0-standalone-quickstart.jar start -c crx-quickstart -i launchpad -p 4502
  2. Test AEM in browser http://<vm-ip-address>:4502


If the command shows active and still AEM does not load (On a browser http://localhost:4502) then check the AEM logs

  • Path for the log file: /<aem-folder>/crx-quickstart/logs/stdout.log


  1. The example above was tested on CentOS 7 and Ubuntu 17.04
  2. AEM 6.4 version was used. Although the above process should work for AEM 6.x


  1. on Cent OS Replace aem.system as aem.service if you get errrors like below

    When I run this , I get service
    # sudo systemctl enable aem.system
    Failed to execute operation: No such file or directory