In Linux können Sie Befehl& Befehl auf dem Hintergrund ausführen, das gleiche wird fortgesetzt, nachdem die Shell offline ist. Ich frage mich, ist es so etwas wie das für Fenster ...Wie führe ich einen Befehl im Hintergrund unter Windows aus?
Antwort
Ich nehme an, was Sie tun möchten, ist ein Befehl ohne eine Schnittstelle (möglicherweise automatisch?) ausführen. Auf Windows gibt es eine Anzahl der Optionen für das, was Sie suchen:
Am besten: Schreiben Sie Ihr Programm als Windows-Dienst. Diese werden gestartet, wenn sich niemand beim Server anmeldet. Sie können Sie das Benutzerkonto auswählen (das anders als Ihr eigenes sein kann), und sie werden neu gestartet, wenn sie fehlschlagen. Diese laufen die ganze Zeit, so dass Sie Aufgaben zu bestimmten Zeiten oder nach einem regelmäßigen Zeitplan in ihnen automatisieren können. Weitere Informationen zum Schreiben eines Windows-Dienstes finden Sie online in einem Lernprogramm wie (http://msdn.microsoft.com/en-us/library/zt39148a(v=vs.110).aspx).
Besser: Starten Sie den Befehl und verstecken Sie das Fenster. Angenommen, der Befehl ist ein DOS-Befehl, können Sie dafür ein VB- oder C# -Skript verwenden. Weitere Informationen finden Sie unter here. Ein Beispiel ist:
Set objShell = WScript.CreateObject("WScript.Shell") objShell.Run("C:\yourbatch.bat"), 0, True
Sie werden immer noch den Befehl manuell starten oder eine Aufgabe schreiben müssen, um den Befehl zu starten. Dies ist einer der größten Rückschläge dieser Strategie.
- Am schlimmsten: Starten Sie den Befehl mit dem Autostart-Ordner. Dies wird ausgeführt, wenn sich ein Benutzer am Computer anmeldet.
Hoffe, dass das hilft!
Wenn Sie nur VS Express haben, dann ist dies eine Möglichkeit, einen Windows-Dienst zu erstellen: http://www.codeproject.com/Articles/106742/Creating-a-simple-Windows-Service – Graham
Ich glaube, der Befehl Sie suchen, start /b *command*
für Unix ist, nohup
stellt ‚keine hangup‘, die als Hintergrundjob etwas anders ist (was würde Ich glaube, dass der obige Befehl ähnlich einem Hintergrundjob für Windows sein sollte
frage: start/b * befehl * wird aufhören zu laufen, sobald ich vom server abmelden oder? und ja, tut mir leid, ich bin 'command &' nicht 'nohup' – Louis
Siehe diese Antwort: http://stackoverflow.com/a/3382087/1751190 Ich glaube schon, aber ich bin nicht positiv. Ich würde es selbst testen, aber ich bin gerade nicht in der Nähe eines Windows-Computers. – Oeste
Nur als eine Bestätigung: Ja, der Befehl wird sterben, wenn Sie sich abmelden (wenn Sie auf der Windows-Maschine von einem Telnet verbunden, um den Befehl auszuführen). – msb
Sie sollten sich auch den Befehl at
in Windows ansehen. Es startet ein Programm zu einer bestimmten Zeit im Hintergrund, was in diesem Fall funktioniert.
Eine weitere Option ist die Verwendung der Service Manager-Software nssm
. Dadurch wird der Befehl, den Sie als Windows-Dienst ausführen, umbrochen.
- 1. Wie führe ich einen Timer im Hintergrund?
- 2. Wie führe ich einen externen Task (Exec) im Hintergrund aus?
- 3. Wie führe ich ein Python-Skript im Hintergrund aus?
- 4. Wie führe ich eine Symfony-Aufgabe im Hintergrund ordnungsgemäß aus?
- 5. Wie führe ich einen Windows cmd Befehl mit Qt?
- 6. Wie führe ich ein Bash-Skript im Hintergrund automatisch aus?
- 7. Wie führe ich PHP's eingebauten Webserver im Hintergrund aus?
- 8. Wie führe ich einen Befehl von mit in MSI aus?
- 9. Wie führe ich einen Befehl (mit seiner Ausgabe wird in eine Datei piped) im Hintergrund?
- 10. Wie führe ich einen Befehl mit String-Formatierung aus?
- 11. Wie führe ich einen Befehl in C# aus?
- 12. Wie führe ich einen Befehl aus und bekomme seine Ausgabe
- 13. Wie führe ich eine Anwendung im Hintergrund in Windows Phone aus?
- 14. Wie führe ich einen Befehl ohne Sudo?
- 15. Wie führe ich einen Befehl im Terminal aus einem Python-Skript aus?
- 16. Wie führe ich einen etcd-Cluster unter Pod-Replikaten aus?
- 17. Wie führe ich einen Befehl in einer Schleife aus, bis ich eine Zeichenfolge in stdout sehe?
- 18. Wie führe ich in jeder Stunde einen Windows-Dienst aus?
- 19. Wie führe ich meine Anwendung im Hintergrund im iPhone?
- 20. Wie führe ich eine Metro-App über PowerShell unter Windows 8 aus?
- 21. Wie führe ich einen bestimmten Befehl aus, wenn der vorherige Befehl einen Fehler zurückgegeben hat?
- 22. Wie führe ich einen einfachen Windows DOS Befehl in Golang aus?
- 23. Wie führe ich einen Titel im Hintergrund aus, wenn RideRequestButton gedrückt wird?
- 24. Wie führe ich einen Befehl innerhalb eines Subprozesses im Python-Skript aus?
- 25. Wie führe ich Java im Kompatibilitätsmodus aus?
- 26. Wie führe ich den Befehl git von build.gradle aus?
- 27. Wie führe ich einen Mercurial-Server aus?
- 28. Wie führe ich einen Befehl vor oder nach jedem von der Konsole eingegebenen Bash-Befehl aus?
- 29. Wie führe ich ein WebView im Hintergrund auf Android?
- 30. Wie führe ich ein Retrofit im Hintergrund-Thread durch?
Gute Frage, sollte aber bei [SuperUser] (http://superuser.com) gefragt werden. Soweit ich weiß, gibt es keine solche Einrichtung. Windows verwendet Dienste für Hintergrundaufgaben ohne Shell, aber sie müssen speziell codiert sein - Sie können nicht einfach irgendeinen Befehl als Dienst ausführen. Am nächsten kommt vielleicht der Start-Befehl, der eine neue Shell startet. – paddy
@paddy aber wenn ich 'start' verwende, wird es aufhören zu laufen, sobald ich offline bin, oder? – Louis
Ja, das ist richtig. Prozesse, die mit 'start' gestartet wurden, werden beim Abmelden beendet. Daher ist es nicht für lange laufende Remote-Hintergrundjobs geeignet. – Anthony