Saya biasanya menggunakan subsistem linux ketika saya memprogram apa pun di Windows 10 sehingga semua jalur saya relatif terhadap ~
. Saya memiliki skrip python yang berjalan selamanya di latar belakang sampai saya mematikan prosesnya. Bagaimana saya melakukannya pada Windows 10 bash tanpa terminal terbuka?
Hal yang sudah saya coba:
bash -c "python3 script.py
dari Run.nohup python3 -u script.py
lalu tutup terminal.setsid python3 script.py
lalu tutup terminal.
Tidak ada yang berhasil. Apakah ada cara untuk melakukan ini? Atau, apakah ada cara untuk mengubah jalur sehingga mereka bekerja jika saya menjalankan skrip dari W10 DAN bash tanpa harus beralih setiap kali?
jobs
) dan proses (ps aux
). Saya bisa menggunakannyafg
untuk membawanya ke latar depan. Tapi, setelah saya menutup jendela bash terakhir dan membuka jendela bash baru, pekerjaan itu hilang, prosesnya masih berjalan, dan saya tidak bisa memindahkan proses ke latar depan. Maaf jika terminologi saya tidak aktif.tmux
atauscreen
untuk mendukung melampirkan kembali ke terminal yang berbeda. Mesin Linux (dan * nix lainnya) yang berjalan secara native memiliki batasan yang sama.Ya, itu "mustahil" saat ini.
Tetapi dimungkinkan untuk membuatnya "muncul" seperti proses latar belakang dengan beberapa tipu daya. Saya ingin fungsi ini sangat buruk, jadi setelah beberapa jam saya datang dengan solusi yang buruk tetapi bekerja.
Poin utamanya adalah membuat shell yang tidak terlihat yang Anda luncurkan WSL Bash dengan VBScript. Anda kemudian dapat menjalankan skrip tersebut saat startup. Penjadwalan Tugas yang Tepat tidak berfungsi karena alasan yang aneh.
Sisi Linux untuk mengaktifkan daemon Anda dapat memiliki sistem startup dasar Anda sendiri yang menyalahgunakan .bashrc misalnya.
Prosesnya dirinci di sini dalam dokumen ini yang saya tulis https://emil.fi/bashwin . Saya tidak menerapkan pemantauan tugas tetapi seharusnya cukup mudah diperluas.
sumber
Sudahkah Anda mencoba solusi ini ?
Ia menggunakan penolong WSH untuk meluncurkan aplikasi apa pun yang disembunyikan.
Kemudian Anda bisa membuat tugas baru di Tak Scheduler untuk meluncurkan perintah saat Anda login. Sesuatu seperti
wscript <path to runHidden.vbs> bash.exe -c "python script.py"
sumber
Butuh waktu lama untuk saya, tetapi saya menemukan cara yang sangat rumit untuk melakukannya (dari file batch):
start bash -c "DISPLAY=:0 [command] & (sleep 0.5 && kill -n 9 $$)"
Berikut ini rincian dari apa yang dilakukannya dan mengapa:
sumber
Saya tidak tahu seberapa baik Windows Service Manager (SrvMan) dari http://tools.sysprogs.org/srvman/ akan bekerja untuk Anda, tetapi itu berhasil bagi saya untuk program lain. Bahkan, saya memang mencoba menjalankan "bash.exe" sebagai layanan untuk melihat apakah itu akan bekerja, dan saya kira saya harus bermain-main sedikit lebih banyak untuk mendapatkan LAMP untuk benar-benar bekerja di latar belakang.
sumber