Uzak bir Unix makinesinde komut çalıştırmak ve komut tamamlanmadan önce çıkmak için ssh'yi nasıl kullanabilirim?


17

Bir Unix makinesinde komut çalıştırmak ve komut tamamlanmadan çıkmak için ssh'yi nasıl kullanabilirim?

Örneğin,

ssh localhost 'sleep 60 &'

Uyku arka planda çalışsa bile, ssh uyku tamamlanana kadar terminalimde asılı.


Muhtemelen &alıntıların dışını istiyorsunuz .
Brad Gilbert

1
Hayır, bu sadece tüm kiti ve kaboodle'ı arka plana koyar ve şifremi yazamıyorum.
Richard Hoskins

Yanıtlar:


19

SSH, istemcinizde nohup kullanmakla tamamen aynı olan ancak ssh'nin parola istemesini mümkün kılan bir -f anahtarına sahiptir. Şöyle kullanın:

ssh localhost -f 'command'

Ancak : SSH arka planda yaşamaya devam edecektir, bu nedenle sunucudaki komut bitmeden istemciyi kapatırsanız iptal edilir. Komutu uyguladıktan sonra ssh bağlantısının kapatılmasını istiyorsanız, sunucu tarafındaki ekranı kullanabilirsiniz:

ssh localhost -f 'screen -d -m sleep 60'

Eğer 'ssh remotemachine -n' uzun süre çalışan komut> withremoteredirects 2> & 1 </ dev / null & 'yaparsam ve istemci kapanırsa komut tamamlanır mı?
Richard Hoskins

Afaik no. I ssh bağlantıları kesilir, ssh arka plan programı ssh "inside" içindeki tüm terminalleri sonlandırmalıdır. Ans, terminalin başlamasından bu yana, ana süreç sona erdiğinden, sonlandırılacakları komutu çalıştırırlar. Ama denemeye değer;)
Martin

Sunucu tarafında 'ekran' yerine 'nohup' ne olacak?
Richard Hoskins

@Brad Gilbert Hiçbir şey? Birkaç şey düşünebilirim, ama ortak olmayan bir şey, 'ekranın' tüm POSIX makinelerinde mevcut olmamasıdır.
Richard Hoskins


6

Nohup, stdout / stderr yönlendirmesini kullanın ve komutu arka planda çalıştırın:

 nohup ssh localhost 'sleep 60' >/dev/null 2>/dev/null &

EDIT: Ya da daha iyisi, sadece ssh's -f parametresini kullanın:

ssh -f localhost 'sleep 60'

Muhtemelen iki yönlendirmeyi birleştirebilirsiniz &>/dev/null.
Brad Gilbert

@BradGilbert Bu sözdizimi POSIX uyumlu değildir; birkaç karakteri kaydetmek için uyumluluktan ödün vermek zor.
tripleee

2

Veya kullanarak giriş yaptıktan sonra, ilerlemeye veya çıktıya bakmak için daha sonra geri gelmek isteyip istemediğinizi sshbaşlatın screen.


Kişisel olarak yapılandırmayı daha kolay bulduğum "tmux" u da kullanabilirsiniz. Her iki uygulama da her birinin artıları ve eksileri ile hemen hemen eşdeğerdir.
mzuther
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.