J'utilise généralement le sous-système Linux lorsque je programme quoi que ce soit sur Windows 10, donc tous mes chemins sont relatifs à ~
. J'ai un script python qui s'exécute pour toujours en arrière-plan jusqu'à ce que je tue le processus. Comment pourrais-je faire cela sur Windows 10 bash sans terminal ouvert?
Ce que j'ai essayé:
bash -c "python3 script.py
de Run.nohup python3 -u script.py
puis fermeture du terminal.setsid python3 script.py
puis fermeture du terminal.
Rien de tout cela n'a fonctionné. Y a-t-il un moyen de faire cela? Sinon, existe-t-il un moyen de modifier les chemins afin qu'ils fonctionnent si j'exécute le script à partir de W10 ET bash sans avoir à les changer à chaque fois?
jobs
) et un processus (ps aux
). Je peux utiliserfg
pour le mettre au premier plan. Mais, après avoir fermé la dernière fenêtre bash et ouvert une nouvelle fenêtre bash, le travail a disparu, le processus est toujours en cours et je ne peux pas déplacer le processus au premier plan. Désolé si ma terminologie est désactivée.tmux
ouscreen
pour soutenir se rattacher à un autre terminal. Les machines Linux (et autres * nix) fonctionnant nativement ont la même limitation.Ouais, c'est "impossible" pour le moment.
Mais il est possible de le faire "apparaître" comme un processus d'arrière-plan avec quelques ruses. Je voulais moi-même assez mal cette fonctionnalité, donc après quelques heures, j'ai trouvé une solution merdique mais fonctionnelle.
Le point principal est de créer un shell invisible sur lequel vous lancez WSL Bash avec VBScript. Vous pouvez ensuite exécuter ce script au démarrage. Une bonne planification des tâches n'a pas fonctionné pour une raison étrange.
Côté Linux, pour activer les démons, vous pouvez avoir votre propre système de démarrage rudimentaire qui abuse de .bashrc par exemple.
Le processus est détaillé ici dans ce document que j'ai écrit https://emil.fi/bashwin . Je n'ai pas implémenté la surveillance des tâches mais cela devrait être assez facile à étendre.
la source
Avez-vous essayé cette solution?
Il utilise un assistant WSH pour lancer toute application masquée.
Ensuite, vous pouvez simplement créer une nouvelle tâche dans Tak Scheduler pour lancer la commande lorsque vous vous connectez. Quelque chose comme
wscript <path to runHidden.vbs> bash.exe -c "python script.py"
la source
Cela m'a pris une éternité mais j'ai trouvé une façon stupidement compliquée de le faire (à partir d'un fichier batch):
start bash -c "DISPLAY=:0 [command] & (sleep 0.5 && kill -n 9 $$)"
Voici une ventilation de ce qu'il fait et pourquoi:
la source
Je ne sais pas si Windows Service Manager (SrvMan) de http://tools.sysprogs.org/srvman/ fonctionnerait bien pour vous, mais cela a fonctionné pour moi pour d'autres programmes. En fait, j'ai essayé d'exécuter le "bash.exe" en tant que service pour voir si cela fonctionnerait, et je suppose que je dois bricoler un peu plus pour que LAMP fonctionne réellement en arrière-plan.
la source