আমার বেশ কয়েকটি দীর্ঘকালীন জিএনইউ স্ক্রিন সেশন রয়েছে। আমি যে বাক্সটি চালাচ্ছি screen -d -r foo
সেটিতে আমি তাড়া করছি এবং তারা অন্য কোথাও সংযুক্ত থাকলে তাদের আলাদা করতে চালাচ্ছি এবং তারপরে সেগুলি আমার বর্তমান উইন্ডোতে সংযুক্ত করুন।
99% সময় এটি ভাল কাজ করে, তবে উপলক্ষে আমি এটি পাই:
$ screen -d -r foo
[2430.foo detached.]
... এবং কিছুই ঘটে না; আমি আর শেল ফিরে পেতে পারি না। অন্য উইন্ডোতে চেষ্টা করা একই কাজ করে, কেবলমাত্র আমি যা করতে পারি তা হ'ল স্ক্রিন সেশনটি (এটি যে সমস্ত প্রোগ্রামগুলিতে চলছে সেগুলি হারাতে) এবং এটি পুনরায় তৈরি করা is
কেন এমন হয়? এটি ঘটলে আমি কীভাবে এড়াতে পারি বা সফলভাবে পুনরায় সংযোগ করতে পারি?
সম্পাদনা : আমার .screenrc
:
startup_message off
defwritelock off
bind q quit
caption always '%{gk} (%n) %t %{y}%d %M %Y :: %c:%s %{b}%W%{d}'
screen -t ZSH
autodetach on
shelltitle ZSH
defutf8 on
সম্পাদনা করুন : strace
সংযুক্ত করার চেষ্টা করার সময় একটি লগের শেষ :
readlink("/proc/self/fd/0", "/dev/pts/14", 4095) = 11
stat64("/dev/pts/14", {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 14), ...}) = 0
stat64("/dev/pts/14", {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 14), ...}) = 0
geteuid32() = 1000
getegid32() = 1000
open("/dev/pts/14", O_RDWR|O_NONBLOCK) = 3
geteuid32() = 1000
getegid32() = 1000
close(3) = 0
ioctl(0, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
umask(0) = 022
lstat64("/var/run/screen", {st_mode=S_IFDIR|0777, st_size=4096, ...}) = 0
access("/var/run/screen/S-mrozekma", F_OK) = 0
stat64("/var/run/screen/S-mrozekma", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0
umask(022) = 0
uname({sys="Linux", node="etudes-2", ...}) = 0
rt_sigaction(SIGHUP, {0x806e520, [], 0}, {SIG_DFL, [], 0}, 8) = 0
geteuid32() = 1000
getegid32() = 1000
open("/var/run/screen/S-mrozekma", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3
getdents(3, /* 6 entries */, 32768) = 124
stat64("/var/run/screen/S-mrozekma/2386.chat", {st_mode=S_IFIFO|0700, st_size=0, ...}) = 0
geteuid32() = 1000
getegid32() = 1000
open("/var/run/screen/S-mrozekma/2386.chat", O_WRONLY|O_NONBLOCK) = 4
geteuid32() = 1000
getegid32() = 1000
fcntl64(4, F_SETFL, O_RDONLY) = 0
geteuid32() = 1000
getegid32() = 1000
getdents(3, /* 0 entries */, 32768) = 0
close(3) = 0
geteuid32() = 1000
getegid32() = 1000
setuid32(1000) = 0
setgid32(1000) = 0
stat64("/var/run/screen/S-mrozekma/2386.chat", {st_mode=S_IFIFO|0700, st_size=0, ...}) = 0
getpid() = 30081
write(4, "\0gsm\4\0\0\0/dev/pts/14\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 12336
strace screen -d -r foo
(আপনাকে screen
এক্সিকিউটেবলের একটি অ-সেট [ug] আইডি অনুলিপি তৈরি করতে হতে পারে ) এবং strace -p$(pidof SCREEN)
ব্যর্থ পুনঃসংযোগের সময় প্রায়।
strace
লগ যোগ । strace
মূল পর্দার প্রক্রিয়াটি write()
screen
এমন কোনও সংযোগে লেখার চেষ্টা করা যেতে পারে যা আর নেই?
SCREEN
) এখনও বেঁচে আছে? এটা কি করছে ( strace
)?