Я хотів би запустити і налаштувати процес аналогічно демону зі сценарію.
Моя оболонка емуляція zsh під Cygwin, а демон - SFK , базовий FTP-сервер.
Що тут важливо, сценарій startserv.sh
можна скласти так:
#!/bin/sh
read -s -p "Enter Password: " pw
user=testuser
share=/fshare
cmd="sfk ftpserv -user=$user -pw=$pw -usedir $share=$share"
$cmd &
Після запуску сценарію startserv.sh
він зупиняється (закінчується?), Не показуючи підказки, тоді:
CTRL+ Cзакінчується як сценарієм, так і фоновим завданням;
Натискання Enterсценарію закінчується, процес залишається у фоновому режимі.
У будь-якому випадку я бачу це лише через, ps
а не jobs
, тому, коли я хочу закрити процес, мені потрібно надіслати жорстокий kill -9
сигнал, чого я хотів би уникати на користь CTRL+ C.
Альтернативою було б запускати весь сценарій у фоновому режимі. 'Було б', але read
команда не може отримати введення користувача, якщо сценарій запускається як startserv.sh &
.
Зауважте, що мені потрібен ефемерний сервер, а не справжній демон : тобто я хочу, щоб серверний процес запускався у фоновому режимі, після закінчення сценарію, для виконання простих інтерактивних завдань оболонки (з гостем віртуальної машини), але я цього не роблю ' t потрібен процес, щоб пережити оболонку; тому nohup
здається не підходящим.
bgproc="$!"
а потімcommand "$bgproc"
вжити відповідних дій. Дивіться також stackoverflow.com/questions/1908610/…