Monit runs with root, but i don't want to start my processes as root.. like mysql, mongrel, apache..

 check process tomcat with pidfile /var/run/tomcat.pid
       start program = "/etc/init.d/tomcat start" 
             as uid nobody and gid nobody
       stop program  = "/etc/init.d/tomcat stop"
             # You can also use id numbers instead and write:
             as uid 99 and with gid 99
       if failed port 8080 then restart



i have found a answer.. i could do a: start_program = "su -c 'command here' USERiWANTtoUSE".. :)

  • 2
    or can use a option 'as uid USERNAME and gid GROUPNAME'. For ex: start_program = "command" as uid USER and gid GROUPNAME
    – Guilherme
    Aug 5 '09 at 21:40
  • 3
    it's better if you edit your answers with this information.
    – shingara
    Apr 7 '10 at 13:05

You can do this to run as another user a specific command

exec /bin/su - userName -c "/usr/bin/nginx start"

This will run that command " " as the user you defined


What operating system / distro are you using? How did you install Monit? Most dsitros 'do the right thing' and make sure things don't start as root.

  • i'm using debian sarge.. i've installed with apt-get.. i don't think monit can be started as other user than root.. by the way it can?.. :)
    – Guilherme
    Aug 7 '09 at 15:18
  • monit can be run by any user with monit -c .monitrc
    – Jayen
    Aug 9 '12 at 1:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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