Apa yang dilakukan 'script / dev / null'?

21

Setiap kali saya masuk ke VM dengan root, suke akun pengguna, dan mencoba menggunakannya screenmelemparkan kesalahan:

Cannot open your terminal '/dev/pts/0' - please check.

Posting Stack Overflow mengatakan bahwa saya perlu menggunakan script /dev/nulluntuk memperbaikinya, dan itu berfungsi, tetapi masih tidak menjelaskan mengapa saya perlu mengetik script /dev/null. Saya ingin memahami apa fungsinya dan mengapa saya harus mengetiknya.

CJL
sumber
2
> Posting Stack Overflow berkata - mungkin bermanfaat jika Anda juga menambahkan tautan ke posting itu, mungkin dalam komentar.
törzsmókus
Itu bisa saja stackoverflow.com/a/44244425/340790 , misalnya.
JdeBP

Jawaban:

27

Anda tidak dapat membukanya /dev/pts/0karena dimiliki oleh root, dan setelah Anda memilih pengguna lain, Anda tidak lagi dapat membukanya melalui jalurnya, tetapi Anda masih dapat menggunakannya melalui pegangan yang dibuka untuk itu, yang diwarisi dari proses induk.

script /dev/null akan membuat pty lain, yang dimiliki oleh pengguna saat ini.

Bagaimanapun, bug / batasan itu tampaknya telah diperbaiki dalam versi terbaru screen(mis. 4.99.0), yang akan dengan benar mengirim pegangan ke terminal saat ini melalui SCM_RIGHTSpesan tambahan pada soket domain unix, alih-alih mengirimkan hanya nama terminal dan minta screenserver mencoba membukanya (dan gagal). Sama halnya dengan tmux.

mosvy
sumber