簡體   English   中英

使用 ssh 啟動遠程進程並退出

[英]Use ssh to launch remote process and exit

我正在嘗試從命令行使用ssh使用以下命令在遠程服務器上啟動 python 服務器:

$ ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no \
-o ConnectTimeout=5 -f -i mykey.pem user@99.99.99.99 \
'python -m SimpleHTTPServer 3000 & echo $! > /home/user/pysrv.pid'

啟動后,我的ssh會話進入后台,但在 python 服務器運行之前不會退出。 有沒有一種方法可以設置命令,以便 ssh 不會在我當前的機器上作為后台進程存在?

你可以做

nohup python -m SimpleHTTPServer 3000 & echo $! > /home/user/pysrv.pid &

它將創建一個不需要父級 (ssh) 的分離任務。

OTOH,如果您殺死 ssh 服務器進程,您將無法再次連接。 這是您想要的,還是您只是想終止會話? 如果只是會話,它應該在連接斷開后自行消失。

TCP 連接關閉時ssh命令退出。 如果您重定向遠程命令的stdinstderr ,將不會連接到 TCP 連接,並且它將關閉。

ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o ConnectTimeout=5 -f -i mykey.pem user@99.99.99.99 'python -m SimpleHTTPServer 3000  2>/dev/null 2>&1 </dev/null& echo $! > /home/user/pysrv.pid'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM