it looks like chpst cannot currently (or never could, not sure) change
hard limits.
The limit stanza in an upstart job file sets both hard and soft limits,
explicitly.
* http://upstart.ubuntu.com./cookbook/#limit
* http://smarden.org/runit/useinit.html#upstart
Bernstein's original softlimit did as the command name says, and changed
only soft limits. The same is true of the softlimit in
daemontools-encore, s6-softlimit, chpst in runit, runlimit in perp, and
the softlimit in nosh. To change hard limits instead or as well, I
wrote a chain-loading ulimit for nosh. If one is writing shell scripts,
then of course shells have built-in ulimit commands. The nosh toolset's
ulimit is for when one isn't writing shell scripts, e.g. nosh or
execlineb scripts, or command chains embedded within a script.
*
http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh/guide/ulimit.html