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

تازه کار => انجمن تازه‌کاران => نویسنده: linux kar در 14 تیر 1400، 10:58 ق‌ظ

عنوان: آیا دستوری در ترمینال هست که مثلا بگه بعد از ۳۰ ثانیه از ترمینال بیرون برو.حل شد
ارسال شده توسط: linux kar در 14 تیر 1400، 10:58 ق‌ظ
سلام دوستان می خواستم بدونم آیا دستوری در ترمینال هست که مثلا بگه بعد از ۳۰ ثانیه از ترمینال بیرون برو.
این دستور رو برای شل اسکریپت می خوام. ممنون میشم اگه بگید.
عنوان: پاسخ : آیا دستوری در ترمینال هست که مثلا بگه بعد از ۳۰ ثانیه از ترمینال بیرون برو.
ارسال شده توسط: sd70 در 14 تیر 1400، 11:03 ق‌ظ
سلام. با دستور sleep میشه این کار رو انجام داد مثلا برای موردی که گفتین میشه کد رو به این صورت نوشت:
sleep 30s && exit
توضیحات بیشتر:
https://www.man7.org/linux/man-pages/man1/sleep.1.html (https://www.man7.org/linux/man-pages/man1/sleep.1.html)
عنوان: پاسخ : آیا دستوری در ترمینال هست که مثلا بگه بعد از ۳۰ ثانیه از ترمینال بیرون برو.
ارسال شده توسط: linux kar در 14 تیر 1400، 11:40 ق‌ظ
سلام. با دستور sleep میشه این کار رو انجام داد مثلا برای موردی که گفتین میشه کد رو به این صورت نوشت:
sleep 30s && exit
توضیحات بیشتر:
https://www.man7.org/linux/man-pages/man1/sleep.1.html (https://www.man7.org/linux/man-pages/man1/sleep.1.html)
از کمکتون ممنونم ولی از ترمینال خارج نشد فقط ۳۰ ثانیه داشت چشمک میزد و بعد برام bash رو باز کرد.
عنوان: پاسخ : آیا دستوری در ترمینال هست که مثلا بگه بعد از ۳۰ ثانیه از ترمینال بیرون برو.
ارسال شده توسط: sd70 در 14 تیر 1400، 02:51 ب‌ظ
خواهش میکنم. بله درسته این دستور در صورتی کار میکنه که مستقیما در خود ترمینال اونو وارد کنید. چنان چه توی یک اسکریپت این کار انجام میشه میتونید با استفاده از متغیر $PPID،‌ آیدی ترمینالی که این اسکریپت در اون اجرا شده رو پیدا کنید و بعد اونو kill کنید. با استفاده از $$ هم process id خود shell رو میتونید پیدا کنید.
عنوان: پاسخ : آیا دستوری در ترمینال هست که مثلا بگه بعد از ۳۰ ثانیه از ترمینال بیرون برو.
ارسال شده توسط: linux kar در 14 تیر 1400، 07:19 ب‌ظ
خواهش میکنم. بله درسته این دستور در صورتی کار میکنه که مستقیما در خود ترمینال اونو وارد کنید. چنان چه توی یک اسکریپت این کار انجام میشه میتونید با استفاده از متغیر $PPID،‌ آیدی ترمینالی که این اسکریپت در اون اجرا شده رو پیدا کنید و بعد اونو kill کنید. با استفاده از $$ هم process id خود shell رو میتونید پیدا کنید.
میشه دقیقتر توضیح بدین
عنوان: پاسخ : آیا دستوری در ترمینال هست که مثلا بگه بعد از ۳۰ ثانیه از ترمینال بیرون برو.
ارسال شده توسط: sd70 در 14 تیر 1400، 07:48 ب‌ظ
در مثال زیر، اجرای اسکریپت به مدت 5 ثانیه متوقف میشه و بعد از اون در هنگام خروج، parent خودش (یعنی هموت ترمینال) رو هم می بنده
#! /bin/bash

echo terminal will be closed after 5 secods
sleep 5s
kill -s 9 $PPID
عنوان: پاسخ : آیا دستوری در ترمینال هست که مثلا بگه بعد از ۳۰ ثانیه از ترمینال بیرون برو.
ارسال شده توسط: linux kar در 16 تیر 1400، 10:30 ب‌ظ
در مثال زیر، اجرای اسکریپت به مدت 5 ثانیه متوقف میشه و بعد از اون در هنگام خروج، parent خودش (یعنی هموت ترمینال) رو هم می بنده
#! /bin/bash

echo terminal will be closed after 5 secods
sleep 5s
kill -s 9 $PPID
از کمکتون ممنونم
عنوان: پاسخ : آیا دستوری در ترمینال هست که مثلا بگه بعد از ۳۰ ثانیه از ترمینال بیرون برو.حل شد
ارسال شده توسط: baharimanesh در 20 تیر 1400، 06:02 ب‌ظ
میتونی از دستور timeout  استفاده کنی.
timeout 30