The Qube worker can run either as a daemon (a "system service" on Windows), or a user process. When it runs as a daemon, it's said to be running in service mode. When it's run as a user process, it's said to be running in Desktop User mode.
Service mode vs. Desktop User mode
Service mode:
- the worker process is usually started at system boot time and runs as long as the system is up
- the worker process runs as either a Windows service or a daemon owned by the root user on OS X and linux.
- the worker process will run jobs under another user other than root; which user it will run the jobs as is determined by the proxy_execution_mode value;
proxy_execution_mode = proxy
means it will always authenticate as the user defined in proxy_account.proxy_execution_mode = user
means it will always authenticate as the user who submitted the job.
Desktop User mode:
- the worker process is started by a logged in user, usually when that user logs in, and is killed when the user logs out
- the worker process is owned by the logged in user
- the worker process does not re-authenticate, and all jobs are run by the user who owns the worker process
Worker authentication when running in Service mode
When the Worker launches a remote job as dispatched by the Supervisor, it can potentially create several processes, all controlled by the Worker. Since Qube is designed to emulate a user executing jobs on a remote host, the Worker will have to run these processes as a user.
...