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

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

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


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

نویسنده موضوع: اجرای چند برنامه در استارت آپ اوبونتو به صورت زنجیره ای؟  (دفعات بازدید: 1807 بار)

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

آفلاین afrod

  • High Hero Member
  • *
  • ارسال: 1526
وقتی اوبونتو روشن میشه، میخوام برنامه a که در استارت آپ قرار گرفته، اجرا بشه و برنامه b منتظر پایان کار برنامه a باشه و a به محض اینکه exit شد (به هر دلیلی حتی اگر crash کرد و بسته شد)، برنامه b شروع بشه و با بشته شدن برنامه b، برنامه c شروع بشه.
برنامه گرافیکی برای start up که این کار از عهده اش اگر وجود نداره،‌ از چه دستورهای ترمینالی و کجا باید استفاده کرد؟


آفلاین majidkamali1370

  • Hero Member
  • *
  • ارسال: 928
  • جنسیت : پسر
میتونی از اسکرپت بش استفاده کنی.
/path/to/program/a || /path/to/program/b || /path/to/program/c
یا این کد C رو کامپایل کنی و بزاری توی startup
int main()
{
  system("/path/to/program/a");
  system("/path/to/program/b");
  system("/path/to/program/c");
}
فقط یادم نیست تابع system توی کدوم سرفایل هست. یه سرچ بزن.
Ubuntu 14.04 LTS 64-bit - unity

آفلاین vandu

  • Hero Member
  • *
  • ارسال: 741
  • جنسیت : پسر
فقط یادم نیست تابع system توی کدوم سرفایل هست. یه سرچ بزن.
#include<stdlib.h>
Nothing is particularly hard if you divide it into small jobs

Henry Ford

آفلاین majidkamali1370

  • Hero Member
  • *
  • ارسال: 928
  • جنسیت : پسر
با تشکر از vandu ی عزیز.
اگه اشتباه نکنم. اون کد C همه برنامه ها رو با هم اجرا میکنه. برای اینکه به ترتیب اجرا بشن باید از توابع fork و exec استفاده بشه. چون یه خورده سخته پیشنهاد میکنم از همون اسکریپت استفاده کنی.
Ubuntu 14.04 LTS 64-bit - unity

آفلاین فاراب

  • High Hero Member
  • *
  • ارسال: 1352
  • آزادی
    • پروفایل لینکداین
یه اسکریپت بساز، مجوز اجرایی بهش بده، و بعد دستورات رو توی یه خط بذار توش و بینشون && بذار. از پایپ (||) هم استفاده نکن چون برای این کار نیست. قطعه کد سی هم جواب مبده اما نیازی به این پیچیدگی نیست.
Godisnowhere

آفلاین afrod

  • High Hero Member
  • *
  • ارسال: 1526
میتونی از اسکرپت بش استفاده کنی.
/path/to/program/a || /path/to/program/b || /path/to/program/c
همین کد را در crontab استفاده می کنم اما وقتی برنامه a (که برنامه تورنت transmission) است را می بندم، انتظار دارم b اجرا شود که اجرا نمیشه  ](*,)
a: برنامه گرافیکی تورنت
b:‌ دستور ترمینال aria2c
c: برنامه گرافیکی Gshutdown

یه اسکریپت بساز، مجوز اجرایی بهش بده، و بعد دستورات رو توی یه خط بذار توش و بینشون && بذار. از پایپ (||) هم استفاده نکن چون برای این کار نیست. قطعه کد سی هم جواب مبده اما نیازی به این پیچیدگی نیست.
با && هم در crontab به نتیجه نرسیدم!
در اسکریپت چطوری باید از crontab استفاده کنم؟ دستورها باید زمانبندی شده اجرا بشه.

آفلاین جادی

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1610
    • در دفاع از آزادی بیان
از چیزها با دلیل خاص استفاده کن. مثلا «و» و «یا» اصولا مال اینکار نیستن. بین دستورها «;» بذار. برای چنین کاری هم معوله همه رو در یک بش اسکریپت بنویسی (هر دستور در یک خط مجزا) و اونو اجرا کنی.
آزادی کیبورد حق هر انسان است - جادی

آفلاین afrod

  • High Hero Member
  • *
  • ارسال: 1526
با ; درست شد :D

برای چنین کاری هم معوله همه رو در یک بش اسکریپت بنویسی (هر دستور در یک خط مجزا) و اونو اجرا کنی.
اگر هر دستور در خط جدا باشه، دستورها به هم وابسته می شوند؟
در بش اسکریپت با چه دستوری زمانبندی اجرا میشه؟