- 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 a user other than root or the system service. This user 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 means it will always authenticate as the user who submitted the job.
The worker process will be unable to access screenspace on Windows and OS X; no processes will be able to render to a hardware buffer, applications that can only run by displaying their full GUI will usually not be able to start, etc.
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 some user.
Unix & OS X
Under Unix-based operating systems, the Worker does a setuid in order to switch user identities before starting the process. One implication of this is that the user's shell environment is not set up (tcshrc or equivalent is not run), so the job's environment may not be identical to an actual login by that user.