انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید

توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: اجرا برنامه در ssh  (دفعات بازدید: 321 بار)

0 کاربر و 4 مهمان درحال مشاهده موضوع.

آفلاین theprofessor

  • Newbie
  • *
  • ارسال: 6
  • جنسیت : پسر
اجرا برنامه در ssh
« : 19 مهر 1399، 04:16 ب‌ظ »
من یه برنامه دارم که ssh میزنه به چنتا از سرور هام و یک برنامرو اجرا میکنه اما وقتی ssh رو میبندم برنامه اجرا شده هم بسته میشه چیکار کنم که وقتی اجرا میشن و از ssh بیرون میام برنامم متوقف نشه
از & استفاده کردم درست نشده
از screen  و tmux هم نمیتونم استفاده کنم.
اگر راهنمایی کنید ممنون میشم

آفلاین M!lad

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1757
پاسخ : اجرا برنامه در ssh
« پاسخ #1 : 19 مهر 1399، 05:32 ب‌ظ »
منطقی هست از ابزاری مثل Ansible استفاده کنید.

بیشتر شرایط و کارهایی که کردید و قصد دارید انجام بدید رو توضیح بدید تا بتونیم بهتر راهنمایی کنیم.

ssh user@server "sleep 30 &"
ctrl+c

باعث میشه sleep در background سرور اجرا بشه...

یا فرض کنید یک فایل به اسم a.sh در ~ سرور داریم:

#!/bin/bash
while true;
do
    echo 'hi';
    sleep 1;
done;


ssh user@172.17.0.2 "nohup ./a.sh > foo &"
« آخرین ویرایش: 19 مهر 1399، 06:08 ب‌ظ توسط M!lad »
..I feel no fault for the fault I feel..

آفلاین theprofessor

  • Newbie
  • *
  • ارسال: 6
  • جنسیت : پسر
پاسخ : اجرا برنامه در ssh
« پاسخ #2 : 19 مهر 1399، 06:18 ب‌ظ »
با & و nohup امتحان کردم اما نمیشه
نمیتونم از ابزار استفاده کنم باید حتما از کامند های لینوکس استفاده کنم
من یه برنامه نوشتم به زبان c# که مبخوام توی چنتا از سرور هام ssh بزنه و یک برنامه دیگرو اجرا کنه و وقتی که از ssh خارج میشه برنامه ها متوقف نشن

آفلاین M!lad

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1757
پاسخ : اجرا برنامه در ssh
« پاسخ #3 : 19 مهر 1399، 06:54 ب‌ظ »
باید برنامه رو debug کنید ببینید چرا این روش‌ها که در حالت عادی کار می‌کنند در برنامه شما جواب نمیده! دیگه اون بر عهده شماست که از تکنیک‌هایی که تسلط دارید برای رفع خطای برنامه خودتون استفاده کنید.

یک ترفند دیگه که به ذهن من میرسه این هست:

ssh server "at now <<< '~/a.sh > ~/foo'"
میتونید تو کدهای ابزارهایی مثل Ansible و Puppet و ... هم بگردید شاید راه حلی پیدا کنید. برا مثال Ansible از پایتون سرور remote استفاده می‌کنه برای مدیریت.
..I feel no fault for the fault I feel..