title: Puppetserver service fails to start
body: <p>I have a Vagrant CentOS VM running with <code>ps.memory = 2048</code> RAM allocated. </p>
  
  <p>When I try to start the <code>puppetserver</code> service:</p>
  
  <pre><code>$ puppet --version
  4.4.0
  $ sudo puppet resource service puppetserver ensure=running
  Error: Could not start Service[puppetserver]: Execution of '/bin/systemctl start puppetserver' returned 1: Job for puppetserver.service failed. See 'systemctl status puppetserver.service' and 'journalctl -xn' for details.
  Error: /Service[puppetserver]/ensure: change from stopped to running failed: Could not start Service[puppetserver]: Execution of '/bin/systemctl start puppetserver' returned 1: Job for puppetserver.service failed. See 'systemctl status puppetserver.service' and 'journalctl -xn' for details.
  service { 'puppetserver':
    ensure =&gt; 'stopped',
  }
  $ journalctl -xn
  No journal files were found.
  $ systemctl status puppetserver.service
  puppetserver.service - puppetserver Service
     Loaded: loaded (/usr/lib/systemd/system/puppetserver.service; disabled)
    Process: 4708 ExecStartPre=/usr/bin/install --directory --owner=puppet --group=puppet --mode=775 /var/run/puppetlabs/puppetserver (code=exited, status=0/SUCCESS)
   Main PID: 4709 (java);         : 4710 (bash)
     CGroup: /system.slice/puppetserver.service
             ├─4709 /usr/bin/java -Xms1g -Xmx1g -XX:MaxPermSize=1g -XX:OnOutOfMemoryError=kill -9 %p -Djava.security.egd=/...
             └─control
               ├─4710 /bin/bash /opt/puppetlabs/server/apps/puppetserver/ezbake-functions.sh wait_for_app
               └─4755 sleep 1
  </code></pre>
  
  <p>My <code>JAVA_ARGS</code> from <code>/etc/sysconfig/puppetserver</code>:</p>
  
  <pre><code>JAVA_ARGS="-Xms1g -Xmx1g -XX:MaxPermSize=1g"
  </code></pre>
  
  <p>As requested, the <code>puppetserver.service</code> file:</p>
  
  <pre><code>$ cat /usr/lib/systemd/system/puppetserver.service
  [Unit]
  Description=puppetserver Service
  After=syslog.target network.target
  
  [Service]
  Type=simple
  EnvironmentFile=/etc/sysconfig/puppetserver
  User=puppet
  TimeoutStartSec=120
  TimeoutStopSec=60
  Restart=on-failure
  StartLimitBurst=5
  
  PermissionsStartOnly=true
  ExecStartPre=/usr/bin/install --directory --owner=puppet --group=puppet --mode=775 /var/run/puppetlabs/puppetserver
  
  ExecStart=/usr/bin/java $JAVA_ARGS \
            '-XX:OnOutOfMemoryError=kill -9 %%p' \
            -Djava.security.egd=/dev/urandom \
            -cp "${INSTALL_DIR}/puppet-server-release.jar" clojure.main \
            -m puppetlabs.trapperkeeper.main \
            --config "${CONFIG}" \
            -b "${BOOTSTRAP_CONFIG}" $@
  
  KillMode=process
  
  ExecStartPost=/bin/bash "${INSTALL_DIR}/ezbake-functions.sh" wait_for_app
  
  SuccessExitStatus=143
  
  StandardOutput=syslog
  
  [Install]
  WantedBy=multi-user.target
  </code></pre>
  
  <p>An attempt at running the <code>ExecStartPost</code> command by hand:</p>
  
  <pre><code>$ /usr/bin/java -Xms1g -Xmx1g -XX:MaxPermSize=1g -XX:OnOutOfMemoryError='kill -9 %%p' -Djava.security.egd=/dev/urandom -cp /opt/puppetlabs/server/apps/puppetserver/puppet-server-release.jar clojure.main -m puppetlabs.trapperkeeper.main --config /etc/puppetlabs/puppetserver/conf.d -b /etc/puppetlabs/puppetserver/bootstrap.cfg
  
  RuntimeError: Got 2 failure(s) while initializing: File[/var/log/puppetlabs/puppetserver]: change from 0700 to 0750 failed: failed to set mode 0700 on /var/log/puppetlabs/puppetserver: Operation not permitted - No message available; File[/var/run/puppetlabs/puppetserver]: change from 0775 to 0755 failed: failed to set mode 0775 on /var/run/puppetlabs/puppetserver: Operation not permitted - No message available
  </code></pre>
  
  <p>So I tried again, but this time I changed some directory permissions, but still similar error (which doesn't make sense given I just changed the mode?):</p>
  
  <pre><code>$ sudo chown -R vagrant:vagrant /var/run/puppetlabs/
  $ sudo chown -R vagrant:vagrant /var/log/puppetlabs/
  $ sudo chmod -R 0755 /var/run/puppetlabs/
  
  $ /usr/bin/java -Xms1g -Xmx1g -XX:MaxPermSize=1g -XX:OnOutOfMemoryError='kill -9 %%p' -Djava.security.egd=/dev/urandom -cp /opt/puppetlabs/server/apps/puppetserver/puppet-server-release.jar clojure.main -m puppetlabs.trapperkeeper.main --config /etc/puppetlabs/puppetserver/conf.d -b /etc/puppetlabs/puppetserver/bootstrap.cfg
  
  OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=1g; support was removed in 8.0
  RuntimeError: Got 1 failure(s) while initializing: File[/var/run/puppetlabs/puppetserver]: change from 0775 to 0755 failed: failed to set mode 0775 on /var/run/puppetlabs/puppetserver: Operation not permitted - No message available
                  use at /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/settings.rb:1007
  </code></pre>
  
  <p>What could be the issue?</p>