Попробуйте это,
head -n 42 dump.sql > tmp; cat dump.sql | grep -vxf tmp > dump.sql.new; rm tmp
или
a=$(cat dump.sql| wc -l); tail -n "$((a-42))" dump.sql > dump.sql.new
В Upstart Intro, Cookbook и Best Practices имеется большое количество фрагментов кода, которые можно использовать при создании задач и заданий выскочки.
Раздел Upstart Intro, Cookbook и Best Practices поваренной книги говорит, что /etc/init/rc.conf будет запущен и вызовет /etc/init.d/rc. В свою очередь это в конечном итоге вызовет /etc/init.d/sendsigs. Итак, если вы start on starting rc, то ваша задача будет выполнена до rc (и сигнмеры, которые обычно завершат процесс).
file: /etc/init/test.conf
[ f1]файл: /etc/init/test.sh
touch /media/sf_LinuxEducation/start
sleep 15
touch /media/sf_LinuxEducation/start-long
Я думаю, что это невозможно сделать с помощью выскочки, так как сценарий /etc/init.d/sendsigs, который вызывается выскочкой при остановке / перезапуске, убивает все процессы (killall5 -9) в течение 10 секунд, и даже если это не удастся, он идет на размонтирование всего и завершение работы.
Лучшим способом было бы использовать скрипты ржавого /etc/init.d/sendsigs .
Пример: /etc/init.d/shutdown_job
#! /bin/sh
### BEGIN INIT INFO
# Provides: shutdown_job
# Required-Start:
# Required-Stop: sendsigs
# Default-Start:
# Default-Stop: 0 6
# Short-Description: bla
# Description:
### END INIT INFO
PATH=/sbin:/usr/sbin:/bin:/usr/bin
. /lib/lsb/init-functions
do_stop () {
date > /root/s.log
sleep 20
date >> /root/s.log
}
case "$1" in
start)
# No-op
;;
restart|reload|force-reload)
echo "Error: argument '$1' not supported" >&2
exit 3
;;
stop)
do_stop
;;
*)
echo "Usage: $0 start|stop" >&2
exit 3
;;
esac
:
Затем активируйте скрипт
sudo update-rc.d shutdown_job start 19 0 6 .
Это поставит скрипт перед выскочкой на уровнях выполнения 0 a 6 (shutdown, reboot). Этот образец сценария будет записывать дату, затем спать в течение 20 секунд, а затем записывать дату снова в /root/s.log.)
Дополнительная информация:
man update-rc.d http: //www.debian.org/doc/debian-policy/ch-opersys.html#s-sysvinit