unixwitch / jobserver Goto Github PK
View Code? Open in Web Editor NEWFlexible replacement for 'cron' and 'at'
Home Page: https://wiki.toolserver.org/view/Jobserver
License: Other
Flexible replacement for 'cron' and 'at'
Home Page: https://wiki.toolserver.org/view/Jobserver
License: Other
Minimal framework for ACLs is available since 4aead7d, but ACLs aren't actually supported. Need some commands like this:
$ job access 13 user:river:vmsd
$ job access global group:users:v---
When a job exit action is set to 'disable', the mail just says 'The job has been disabled.' It should probably explain why.
A new rctl that would limit wall clock time of a job. Stop method should be invoked automatically once the limit is reached.
$ job limit 13 max-time 600
Need a command to list scheduled jobs in execution order, with time of execution.
Currently log rotation is hard-coded to 1MB filesize and 2 keeps. It should be possible to configure this, or to disable log rotation entirely.
There's no point having different commands for this. Make 'job set x max-data-size' work and remove 'job limit' and 'job unlimit'.
The logfile format should be configurable, preferable separately for continuous and scheduled jobs.
Currently scheduled jobs cannot be enabled or disabled; a scheduled job is always run. It should be possible to disable a scheduled job, retaining the schedule but not running it.
Like 'set fmri', but it sets the job:/username/ automatically.
This would be like 'mail', but it would include the last few lines of the logfile.
Instead, associate our job FMRI with the process contract, and re-attach when the server restarts.
... and move it into a separate contract_t wrapper.
% ./job quota jobs-per-user 25
Invalid parameter.
Sometimes raw units may be wanted, e.g. for scripting. Add a switch to 'job limit' to disable formatting.
There should be a way to view job history, e.g. when it was started, if it failed, changes to it, etc.
% ./job limit 13 max-data-size
max-data-size = 10240
% ./job limit 13
max-data-size = 10.00MB
To enable account expiry to work, we need to start a PAM session when starting a tool.
Currently this does nothing. It should be implemented.
Currently the server doesn't validate project names in CHNG until the job actually executes. To prevent confusing users, it should validate it at CHNG time and return an error.
The default action for scheduled jobs is 'disable', but disable is actually ignored for scheduled jobs, so this doesn't do anything. Add a new 'reschedule' action, and make 'disable' work as expected.
'every minute' sched just returns now+60, instead of calculating the top of the next minute like it should.
Currently when the jobserver exits, it doesn't end running jobs, which means they get SIGKILL instead of normal shutdown behaviour. The jobserver should handle SIGTERM and do a clean shutdown.
Currently, a failure between forking and opening the logfile is not reported to the user. There should be a mechanism to allow this, perhaps by opening an FD_CLOEXEC pipe that errors would be reported over.
If a fail/crash occurs during job stop, ignore it.
Instead of using an id and a name, jobs should be identified by a unique FMRI of the form job://
If a job fails to stay up (runs less than SCHED_MIN_RUNTIME) we should try to start it several times before placing it in maintenance, in case it was a transient problem.
Currently behaviour of fail/crash/exit is not configurable. It should be possible for the user to select 'restart' and/or 'mail' actions for these, e.g.:
job set 4 crash=restart,mail
Currently, unsetting a property is done by setting it to a null value. There should be a 'job unset' command instead.
Need to allow 'at'-style scheduling, e.g. 'job sched 1 at 13:00' or 'job sched 1 at 2009-01-01 23:00', or even 'job sched 1 in 5 minutes'.
% ./job list
ID NAME USER STATE RSTATE CMD
13 test.sh rriver scheduled stopped /home/rriver/test.sh
% ./job disable 13
Cannot enable a scheduled job.
So that nvlists can be automatically packed/unpacked, rather than doing it manually.
Currently it is impossible to stop a scheduled job. 'job disable' is disallowed, and 'job unschedule' unscheds the job but doesn't stop it. We probably need a 'job stop' command.
Currently we only use errno to report errors, which is often too vague. Add some negative errno values to describe jobserver-specific failures.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.