Normalmente, uso o subsistema linux quando estou programando algo no Windows 10, portanto todos os meus caminhos são relativos ~
. Eu tenho um script python que é executado para sempre em segundo plano até eu matar o processo. Como eu faria isso no Windows 10 bash sem um terminal aberto?
Coisas que tentei:
bash -c "python3 script.py
de Executar.nohup python3 -u script.py
depois fechando o terminal.setsid python3 script.py
depois fechando o terminal.
Nada disso funcionou. Existe uma maneira de fazer isso? Como alternativa, existe uma maneira de alterar os caminhos para que funcionem se eu executar o script a partir do W10 AND bash sem precisar trocá-los sempre?
jobs
) e um processo (ps aux
). Eu posso usarfg
para trazê-lo para o primeiro plano. Mas, depois de fechar a última janela do bash e abrir uma nova janela do bash, o trabalho foi encerrado, o processo ainda está em execução e não consigo mover o processo para o primeiro plano. Desculpe se minha terminologia está desativada.tmux
ouscreen
para apoiar reconectando a um terminal diferente. As máquinas Linux (e outras * nix) em execução nativamente têm a mesma limitação.Sim, é "impossível" no momento.
Mas é possível que ele "apareça" como um processo em segundo plano com alguns truques. Eu queria muito essa funcionalidade, então, depois de algumas horas, encontrei uma solução de merda, mas funcional.
O ponto principal é criar um shell invisível para o qual você inicia o WSL Bash com o VBScript. Você pode então executar esse script na inicialização. O agendamento adequado de tarefas não funcionou por algum motivo estranho.
No lado do Linux para ativar daemons, você pode ter seu próprio sistema de inicialização rudimentar que abusa do .bashrc, por exemplo.
O processo está detalhado aqui neste documento que escrevi https://emil.fi/bashwin . Não implementei o monitoramento de tarefas, mas deve ser bem fácil de estender.
fonte
Você já tentou esta solução?
Ele usa um auxiliar WSH para iniciar qualquer aplicativo oculto.
Em seguida, você pode apenas criar uma nova tarefa no Tak Scheduler para iniciar o comando quando fizer login. Algo como
wscript <path to runHidden.vbs> bash.exe -c "python script.py"
fonte
Demorei uma eternidade, mas achei uma maneira estupidamente complicada de fazer isso (a partir de um arquivo em lotes):
start bash -c "DISPLAY=:0 [command] & (sleep 0.5 && kill -n 9 $$)"
Aqui está uma descrição do que ele faz e por quê:
fonte
Não sei se o Windows Service Manager (SrvMan) de http://tools.sysprogs.org/srvman/ funcionaria para você, mas funcionou para mim em outros programas. Na verdade, tentei executar o "bash.exe" como um serviço para ver se funcionaria, e acho que tenho que mexer um pouco mais para que o LAMP realmente funcione em segundo plano.
fonte