jctld is a job/process control system for clusters of machines.
Here are some key features of "jctld":
· TCP, UDP or UNIX-socket operation
· Fairly lightweight in terms of CPU and memory
· See what jobs are running on machines
· Be able to start/kill/suspend/resume/renice jobs on machines
· Basic node monitoring (e.g. uptime/load)
· Security (trust by private-public key pairs)
· Anything else that we might want to add later on..
· libstatgrab 0.14
The whole system comprises mostly of two programs -- 'jctld' and 'jcli'. Machines are divided mostly into three categories:
· Clients: the nodes in a cluster that run jobs and other things, including 'jctld'
· Servers: machines that monitor and control clients, using 'jctld'
· Users: machine from which a user controls jobs and other things, using 'jcli'
Configuration is handled using a couple of XML files, and geared such that clients and servers (and if needed, users) can share the same config file. Public/private key pairs are used to identify clients and users to servers, and vice versa; both programs take a '--genkeypair' argument that can be used to generate keys. In a real-world installation (as it's aiming for), a user will create themselves a key-pair, which an administrator adds to the server config.
Access and control are handled through sets of privileges, which can be assigned to single users or groups of users. The privileges specify what the associated user or group is allowed to do, or not allowed to do -- 'deny's are searched before 'allow's. The way it works should be apparent in the sample configuration shown below.