код выхода grep в ловушке, где скрипт запускается при помощи функции upstart

Недавно я столкнулся с проблемой в выскочке ubuntu и ловушке в оболочке Bash.

Я использую ubuntu 12.04. Сценарий выскочка (/etc/init/player.conf):

start on (local-filesystems and runlevel [2345]) stop on runlevel [06] script /tmp/test.sh end script 

/tmp/test.sh :

 #!/bin/bash TOKEN="token" TOKEN_FILE="/tmp/token" OUTPUT_FILE="/tmp/test_exit" func() { grep "$TOKEN" "$TOKEN_FILE"; echo $? >> "$OUTPUT_FILE"; exit 0 } trap 'trap "" INT TERM QUIT EXIT; func' INT TERM QUIT EXIT rm -f "$OUTPUT_FILE" echo "$TOKEN" > "$TOKEN_FILE" grep "$TOKEN" "$TOKEN_FILE"; echo $? >> "$OUTPUT_FILE"; sleep 1000 exit 0 

Процедура тестирования:

 $sudo service player start $sudo service player stop $cat /tmp/test_exit 0 2 

Мой вопрос: почему второй результат равен 2, так как файл (/ tmp / token) не изменяется, grep должен найти строку («токен») в этом файле («/ tmp / token»).

  • Как остановить дисковое приложение gnome от спам-сообщений с сообщениями об ошибках диска до тех пор, пока моя X-сессия не замерзнет?
  • Скопировать файлы с длинными именами
  • Переключение уровня запуска при перемещении / var в другой раздел
  • Ошибка установки linux-firmware_1.157.10: «невозможно удалить» /lib/firmware/brcm/brcmfmac43362-sdio.bin ': разрешение отклонено. "
  • Добавление дисков в зашифрованный раздел LVM
  • Как установить Nautilus в качестве файлового менеджера по умолчанию в элементарной ОС
  • Установка Ubuntu / Debian на SD-карту на 16 ГБ
  • Невозможно установить гостевые дополнения virtualbox на Ubuntu 16.04.2
  • Узнайте, в какое время моя машина была перезапущена и почему?
  • Нажатие `up`, чтобы получить предыдущую команду в tty на сервере Ubuntu
  • Почему Quickbooks работает с Ubuntu, но не с Fedora?
  • Linux и Unix - лучшая ОС в мире.