![](/img/trans.png)
[英]Use SSH to start a background process on a remote server, and exit session
[英]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
命令退出。 如果您重定向遠程命令的stdin
和stderr
,將不會連接到 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.