sotvm, поменять местами тоже не выйдет, т.к. элементы конвейера могут запускаться параллельно. И через && связать не получится, т.к. команда завершится во время отключения от ssh. Поэтому нужно запускать "sleep 3600 && killall APP" внутри screen (который не грохнет сессию при отключении от ssh), либо по крону выполнить.
sotvm, вы понимаете, что такое перенаправление ввода-вывода?
echo сразу отрабатывает. Но вместо печати текста на консоль вывод echo перенаправляется на ввод sleep, который ждет 10 секунд и затем уже печатает свой ввод (который был выводом echo).
Что бы убедиться, проверьте свой вариант с killall.
Но предположим, что вы правы.
При отключении от ssh сессия завершится. И команда killall так никогда и не выполнится. Поэтому основная проблема в том, что бы продлить жизнь сессии.
sotvm, так сработает как нужно (именно этот вариант я и писал выше, вы проглядели). Но не по ssh. Если отключиться от ssh раньше 10 секунд, то killall не успеет запуститься.
Именно поэтому нужно продлить сессию, что бы после дисконнекта sleep (а точнее шелл в котором он запущен, ведь && это оператор шелла) продолжил выполняться (а не принудительно завершился).
fshp, да, и что? Это проще будет для человека и понятнее, чем руками в крон лазить.
"at now + 1 hour", согласитесь, понятно выглядит. Тем более что вопрос: "Какой командой?"