Учитывая правильное замечание @PeterCordes о том, что Ctrl -C работает не всегда, я иногда использую решение, чтобы не делать цикл бесконечным. Вместо этого я часто пишу:
while sleep 1; do...; done
Если эта задержка в одну -секунду слишком велика для замедления, например, когда вы хотите зациклиться как можно быстрее, тогда обусловьте цикл while
наличием файла семафора:
touch /tmp/ENABLE-LOOP-FILE
while [ -f '/tmp/ENABLE-LOOP-FILE' ]; do...; done
Когда вам нужно убить цикл, перейдите в другую терминальную сессию и удалите файл:
rm /tmp/ENABLE-LOOP-FILE
После дополнительных испытаний оказалось, что и $ nohup./executable &
, и $./executable & $ disown
подходят для этой цели. Мне просто нужно прокрутить вниз после запуска top
, чтобы увидеть, как работает программа.
В качестве побочного примечания $ nohup./executable &
лучше, если ваша программа начинает ведение журнала немедленно, без -остановки, так как выполнение $./executable &
, а затем $ disown
во время ведения журнала кажется немного странным.