1#!/bin/sh 2# 3# ulimit.hack: Create an intermediate program for use in 4# between kernel initialization and init startup. 5# This is needed on a 3b system if the standard CDLIMIT is 6# so small that the dumped Emacs file cannot be written. 7# This program causes everyone to get a bigger CDLIMIT value 8# so that the dumped Emacs can be written out. 9# 10# Users of V.3.1 and later should not use this; see etc/MACHINES 11# and reconfig your kernel's CDLIMIT parameter instead. 12# 13# Caveat: Heaven help you if you screw this up. This puts 14# a new program in as /etc/init, which then execs the real init. 15# 16cat > ulimit.init.c << \EOF 17main(argc, argv) 18int argc; 19char *argv[]; 20{ 21 ulimit(2, 262144L); /* "2" is the "set" command. */ 22 /* 262,144 allows for 128Mb files to be written. */ 23 /* If that value isn't suitable, roll your own. */ 24 execv("/etc/real.init", argv); 25} 26EOF 27# 28# Compile it and put it in place of the usual init program. 29# 30cc ulimit.init.c -o ulimit.init 31mv /etc/init /etc/real.init 32mv ulimit.init /etc/ulimit.init 33ln /etc/ulimit.init /etc/init 34mv ulimit.init.c /etc/ulimit.init.c # to keep src for this hack nearby. 35chmod 0754 /etc/init 36exit 0 37# 38# Upon system reboot, all processes will inherit the new large ulimit. 39