Windows - Jalankan proses di latar belakang setelah menutup cmd


15

Saya memiliki skrip Python yang ingin saya jalankan sebagai proses latar belakang pada Windows.

Saya dapat melakukannya di Linux dengan:

python script.py &

dan kemudian putuskan proses dari terminal dengan:

disown

Di Windows, yang saya miliki sejauh ini adalah ini:

start /b python script.py

Namun, jika saya menutup jendela CMD, skrip berhenti berjalan. Apakah ada perintah tambahan yang saya lewatkan di sini agar skrip tetap berjalan di latar belakang?

Jawaban:


6

startseharusnya sudah menjadi arah yang benar. Namun, /blampirkan ke konsol yang sama. Sekarang masalahnya adalah ketika jendela konsol ditutup, setiap proses yang terkait dengan konsol ini juga akan ditutup.

Anda dapat menggunakan starttanpa /b, maka itu akan berjalan di konsol baru. Jika Anda ingin menjalankannya di latar belakang tanpa jendela konsol, maka Anda harus menggunakan VBScript atau alat pihak ketiga: Jalankan file batch dengan cara yang sepenuhnya tersembunyi

Namun, dalam hal ini Anda tidak akan melihat output stdout / stderr lagi. Anda bisa mengarahkannya ke file, dengan membungkusnya dalam cmd /c your_command > stdout.txt 2> stderr.txtpanggilan dan mulai yang ini melalui salah satu metode yang disebutkan di atas (VBScript, alat pihak ketiga, ...).

Atau, Anda juga bisa menyembunyikan jendela konsol Anda sendiri sebelum keluar. Saya baru saja menulis sebuah program satu baris kecil yang melakukan hal itu (kode sumber pada dasarnya ShowWindow(GetConsoleWindow(), SW_HIDE)): http://share.cherrytree.at/showfile-24286/hide_current_console.exe

Dengan cara ini, Anda dapat menggunakan start /b, dan ketika Anda ingin "menutup" konsol Anda (secara teknis menyembunyikannya), Anda akan menjalankan hide_current_console & exityang akan menyembunyikan konsol dan kemudian menutup proses cmd.exe (bukan proses python) - dalam satu baris, karena Anda tidak dapat mengetik exitsetelah konsol sudah disembunyikan.


Dari mana hide_current_consoledatangnya? Tidak bekerja pada PC W10.
Sumber Btc

1
Saya mengujinya lagi, masih berfungsi. Dari mana asalnya: Silakan baca posting lagi, saya menunjukkan satu baris kode sumber file ini dan menautkan file hide_current_console.exe yang dikompilasi untuk diunduh ...
CherryDT

-2

Saya menemukan yang berikut ini bekerja dengan baik untuk saya:

run python script.py

1
Oh, dan di Linux alih-alih background ( &) dan disownsaya sarankan menggunakan nohup.
nikc

5
Perintah yang masuk ke Windows cmd shell memberikan error berikut: 'run' is not recognized as an internal or external command, operable path or batch file..
markshep
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.