دیروز در هنگام اجرای دستوری بصورت ریموت از طریق php در SSh به خطای "stdin: is not a tty" برخورد کردم.جالب اینجاست که این دستور در عین اینکه با موفقیت به پایان میرسید به من خطا میداد.

حالا با هم مرحله به مرحله حل به حل این مشکل می پردازیم.

 

قدم اول

به سروری که این ارور را تولید میکند وارد شوید(از طریق ssh یا terminal)

قدم دوم

به خانه کاربری بروید که با آن اکانت به ssh متصل میشوید.

برای مثال اگر با کاربر amir به ssh متصل میشوید بصورت پیشفرض دایرکتوری خانه این کاربر در این آدرس است:

/home/amir

اما اکثر ما با دسترسی root به ssh متصل میشویم که میتوانید با دستور زیر به خانه root برویم:

cd ~

بصورت پیشفرض شما بلافاصله بعد از اتصال به ssh شما در موقعیت خانه کاربر مربوط قرار خواهید گرفت.

قدم سوم

فایل .bashrc را از طریق ویرایشگر هایی همانند nano یا vi ویرایش کنید:

nano .bashrc

قدم چهارم

این متن را در خطوط بالایی این فایل اضافه کنید:

[ -z "$PS1" ] && return

قدم آخر

فایل را ذخیره کنید و خارج شوید.در nano شما با ctrl+o فایل را ذخیره میکنید و با  ctrl+x از ویرایشگر خارج میشوید.

و حالا شما هرگز خطای “stdin: is not a tty” را مشاهده نخواهید کرد.

منبع: www.servermom.org