2016-08-24 69 views
0

正如標題已經總結:的Windows Linux的子系統:啓動猛砸應用程序作爲服務

我怎樣才能自動啓動一個bash腳本,在計算機啓動時 - 最好,而不需要登錄到窗口 - 使用Linux的Bash的微軟子系統。

+0

Bash只是一個可執行文件,對,你不需要做任何特殊的事情來啓動它? [nssm](http://nssm.cc/)應該可以工作。或者你可以使用微軟的srvany。也可能有其他第三方解決方案。 –

+0

好的,它是如何工作的?我在腳本里面有'/ mnt/c/Users//repos/server/start.sh' ,我做了一個'cd/mnt/c/Users//repos/server;回聲「開始」> somefile.txt; python myserver.py' 服務器爲http打開一個tcp端口8080。 Windows防火牆被禁用。我沒有連接,也沒有任何文件'somefile.txt' ---我試着用nssm和windows任務計劃程序 – Tobi

+0

*理論上,*如果我理解這些工作如何,如果有'bash.exe'命令在Windows命令行工作,它應該也可以從服務運行時工作。顯然你不能直接調用一個bash腳本,你需要用相應的命令行選項調用'bash.exe'。解決問題的最佳方法可能是使用'psexec'(可從MS網站獲得)來運行命令行,這樣您將看到錯誤消息(如果有的話)。 –

回答

4

目前,這不被支持,因爲WSL會話管理器服務將在最後一個bash.exe包裝器實例關閉後關閉。有幾個選項,但目前絕對最簡單的是使用Xming開發人員的run utility,並且只需在啓動文件夾中添加快捷方式(在開始菜單中),指向

run.exe bash.exe -c "/home/user/daemoninit.sh ; /bin/bash"。不幸的是,如果你的守護進程初始化需要root權限,例如sshd,你需要向sudoer添加一個異常,允許任何人以root權限運行守護進程。

另外,將它作爲真正的Windows系統服務運行時出現問題,因爲每個lxss安裝都是用戶特定的。有些人已經獲得它在系統啓動時運行,但它在該用戶的單獨Windows會話中啓動,並使其無法在當前用戶會話中啓動bash.exe。

+0

那麼,如果你可以使用膩子ssh進入它並且你已經完成,我認爲不能打開另一個bash窗口聽起來並不那麼糟糕 –

相關問題