Pengembalian sesi baru Tmux: "tidak dapat membuat soket"

8

Saya telah membunuh sebuah byobusesi secara tidak sengaja (kill -9 byobuSessionId), dan sekarang ketika saya mencoba memulai byobuperintah lain gagal dengan "tidak dapat membuat socket".

Juga tmux new-sessionmengembalikan: "tidak dapat membuat socket"

Saya telah mencoba sudo service screen-cleanup starttanpa keberhasilan!

Adakah yang tahu bagaimana saya bisa menyelesaikannya?

luilver
sumber

Jawaban:

7

Masalah terjadi mungkin oleh proses tmux mati jika Anda memeriksa output untuk perintah strace -f -e trace = file tmux .

Anda melihat file socket dibuat oleh tmux, dalam kasus saya terletak di / tmp // tmux-1001 / default /

Anda cukup menghapus file ini dan menjalankan lagi perintah byobu .

Al3tz Morales
sumber
5

Periksa izin /tmp/tmux*/direktori. Mereka harus dimiliki oleh Anda dan tidak dapat diakses oleh orang lain.

Jadi ubah izin sebagai:

chmod 700 -R /tmp/tmux*

Adalah penting bahwa direktori socket dimiliki oleh Anda dan tidak dapat diakses oleh semua orang, atau pengguna mana pun dapat menggunakan server tmux Anda. Untuk sementara, tmux salah melompati pemeriksaan mode akses, ini diperbaiki dalam 2.0.

Jika sistem Anda tidak mendukung pembuatan direktori di / tmp dengan kepemilikan yang tepat, Anda harus menggunakan -S untuk mengarahkannya secara eksplisit ke soket. Pemeriksaan ini penting dan kami tidak akan mendukung sistem yang tidak memiliki semantik izin file Unix.

Shubham Chaudhary
sumber
0

Izin dari /tmpdapat menyebabkan masalah ini.
Anda dapat memeriksa apakah izinnya /tmpadalah 1777, jika tidak melakukan ini:

sudo chmod 1777 /tmp
Honghe.Wu
sumber
1
/tmpseharusnya memiliki 4777 (perlu + t flag). Tanpa itu, semua orang akan dapat menghapus file dan mengganti nama file atau direktori yang lain di bawah ini /tmp. Selain itu, ini adalah jawaban seperti pesulap ("do X, you get Y" - tetapi tidak ada penjelasan).
peterh
@peterh Terima kasih telah mengingatkan saya untuk izinnya.
Honghe.Wu
0

Saya telah menemukan masalah yang sama pada server bersama, di mana saya tidak memiliki izin khusus di luar direktori rumah saya. Kebetulan tmux mencoba mengakses folder ~ / tmp tempat membuat socketnya. Folder itu tidak ada dan dengan demikian kesalahan.

Solusi pada kasus saya adalah membuat folder ~ / tmp dan semua mulai berfungsi dengan baik.

vxp
sumber
0

Saya mengalami masalah yang sama dan di bawah ini adalah solusi saya:

  1. Buat folder baru: /tmp/$(id -u)
  2. Ubah pemilik: chown -R $(id -nu):$(id -nu) /tmp/$(id -u)
  3. Ubah izin: chmod -R 700 /tmp/$(id -u)

Berhasil!

JsonBruce
sumber
0

Saya memiliki masalah yang sama, tetapi karena masalah ruang disk.

Prasad Bonthu
sumber
0

pada mac cmds itu melakukan trik:

sudo rm -r '/tmp/tmux-'$(id -u)
sudo chmod -R 4777 /tmp/
Yordan Georgiev
sumber
-1

Menggunakan perintah, strace -f -e trace=file tmuxAnda dapat melihat file apa yang disebut tmux. Masalah sering disebabkan oleh izin pada folder / tmp. Pada instalasi standar, izin Server Ubuntu diatur ke 777. Anda dapat mengubahnya dengan

sudo chmod 777 /tmp
Maurizio Aru
sumber