
У меня есть небольшой фрагмент кода C, который я пытаюсь запустить в фоновом режиме. Когда я запускаю программу с помощью &
, я могу найти процесс в top или с помощью ps, и я вижу ожидаемый дисплей ввода-вывода в терминале или в другом месте, если передать в файл или запустить с помощью nohup
.
Вот моя проблема: вместо того, чтобы запустить приложение и немедленно вернуть управление командной строке, терминал, похоже, ждет, пока я не нажму Enter (или не воспользуюсь стрелкой вверх, чтобы начать прокручивать историю команд), чтобы снова отобразить командную строку. Возможно ли запустить приложение в фоновом режиме и снова получить доступ к командной строке, не нажимая Enter снова? Я пробовал различные комбинации , nohup
, disown
, 2>&1
и т. д... безуспешно.
решение1
Управление does
возвращается в оболочку сразу после запуска приложения, о чем свидетельствует тот факт, что вы можете получить доступ к истории с помощью клавиш со стрелками. По какой-то причине оболочка не выводит приглашение, пока вы не нажмете return. Вы можете убедиться в этом, введя команду перед нажатием enter( ls
). Ее результат должен быть отображен на экране.