Eu gostaria de executar e configurar um processo de maneira semelhante a um daemon a partir de um script.
Meu shell é zsh emulado no Cygwin e o daemon é o SFK , um servidor FTP básico.
Para o que importa aqui, o script startserv.shpode ser redigido da seguinte maneira:
#!/bin/sh
read -s -p "Enter Password: " pw
user=testuser
share=/fshare
cmd="sfk ftpserv -user=$user -pw=$pw -usedir $share=$share"
$cmd &
Depois de executar o script startserv.sh, ele pára (termina?) Sem mostrar nenhum prompt e, em seguida:
CTRL+ Ctermina o script e o processo de trabalho em segundo plano;
Ao pressionar Entero script, o processo permanece em segundo plano.
De qualquer forma, só posso vê-lo via pse não jobs, então, quando quero fechar o processo, tenho que enviar um kill -9sinal brutal , algo que gostaria de evitar em favor do CTRL+ C.
Uma alternativa seria executar o script inteiro em segundo plano. 'Seria', mas o readcomando não pode obter a entrada do usuário se o script for executado como startserv.sh &.
Observe que preciso de um servidor efêmero, não um daemon verdadeiro : ou seja, desejo que o processo do servidor seja executado em segundo plano, após o término do script, para executar tarefas simples de shell interativas (com um convidado da máquina virtual), mas não não precisa do processo para sobreviver à concha; portanto, nohupnão parece apropriado.
bgproc="$!"e, em seguida,command "$bgproc"execute a ação apropriada. Veja também stackoverflow.com/questions/1908610/…