fork: coba lagi: Sumber daya tidak tersedia untuk sementara


31

Saat saya terhubung ke server saya,

-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: Resource temporarily unavailable

Dan saya coba ikuti perintah juga, maka hasilnya sama.

-bash-4.1$ df -h
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: Resource temporarily unavailable
-bash-4.1$ 
-bash-4.1$ ls -lrth
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: Interrupted system call
-bash-4.1$ 
-bash-4.1$ ps -aef | grep `pwd`
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: Resource temporarily unavailable
-bash-4.1$ 

Kenapa ini datang? Dan bagaimana saya bisa mengatasinya?


2
Sepertinya swap kelebihan beban (/ tmp filesystem mungkin penuh)
Lambert

2
ulimit -a, mungkin Anda mencapai batas proses
c4f4t0r

Jawaban:


20

Ini bisa disebabkan oleh beberapa batasan sumber daya, baik di server itu sendiri (atau) khusus untuk akun pengguna Anda. Batas di shell Anda dapat diperiksa melalui ulimit -a. Terutama untuk memeriksa ulimit -uproses pengguna maks, jika Anda telah mencapai proses maks, garpu tidak dapat membuat yang baru dan gagal dengan kesalahan itu. Ini juga bisa karena masalah sumber daya swap / memori


9

fork: Sumber Daya tidak tersedia untuk sementara

Kesalahan berarti bahwa sumber daya shell saat ini terbatas (periksa batasnya dengan ulimit -a). Jadi Anda bisa mencoba di shell lain, atau menambah sumber daya dengan menggunakan ulimitperintah yang mengontrol sumber daya yang tersedia untuk shell dan memprosesnya pada sistem operasi.

Untuk menambah batas, coba jalankan:

ulimit -Sn unlimited && ulimit -Sl unlimited

untuk menaikkan batas lunak ke yang keras, atau:

ulimit -l unlimited
ulimit -n 10240 

untuk mengatur ukuran maksimum suatu proses menjadi tidak terbatas dan jumlah maksimum file terbuka menjadi 10240.

Lihat: help ulimituntuk informasi lebih lanjut.

Untuk membuatnya terus-menerus, tambahkan pengaturan di atas ke dalam file rc startup Anda (mis ~/.bashrc.).


Anda juga dapat menggunakan /etc/sysctl.conf(lihat: man sysctl.conf) untuk meningkatkan batas kernel, mis

kern.maxprocperuid=1000
kern.maxproc=2000

1
Ketika kesalahan ini terjadi, apakah "coba lagi" menyiratkan bahwa ia akan mencoba berulang kali sampai sumber daya tersedia?
DaveTheMinion

@ DavidB Atau itu memang coba lagi, tetapi gagal.
Kusalananda

@ Kusalananda Oke terima kasih.
DaveTheMinion

0

Masalahnya juga dapat diatasi dengan menggunakan perintah berikut:

yum install psmisc
killall -STOP -u user1
killall -KILL -u user1

Di sini user1 adalah grup pengguna yang batasnya telah terlampaui


Membunuh setiap proses milik pengguna tampaknya agak berat. Juga, yumperintah itu mungkin tidak akan bisa melakukan fork juga.
Kusalananda

Perintah yum akan dijalankan melalui pengguna root, dengan asumsi masalah telah terjadi pada pengguna yang berbeda dari root
Arun

Jika shell gagal melakukan fork, dfia akan mengalami masalah sudojuga.
Kusalananda
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.