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

4 Answers 4

 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, 2009 at 21:40
  • 3
    it's better if you edit your answers with this information.
    – shingara
    Apr 7, 2010 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, 2009 at 15:18
  • monit can be run by any user with monit -c .monitrc
    – Jayen
    Aug 9, 2012 at 1:37

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .