Articles
@thrig Det sparer påfølgende gafler , som ikke virkelig hjelper med en prosessbegrensning.
Har du strenge grenser på kontoen din? Hva operativsystem og distribusjon kjører systemet? Kjører du mange andre prosesser?
Ja, det er en produksjonsenv. Det er så mange prosesser som kjører på et system.
finn: kan ikke gaffel: Kan ikke tildele minne
On november 18, 2020 by adminJeg vil slette en fil om gangen fra katalogen min som inneholder så mange filer, så jeg vil fjerne 1 filen om gangen. Bare for å unngå for mange lesninger og mislyktes med for mange argumenter.
find ./Backup/ -name "*.csv" -maxdepth 1 -exec rm {} \; find: warning: you have specified the -maxdepth option after a non-option argument -name, but options are not positional (-maxdepth affects tests specified before it as well as those specified after it). Please specify options before other arguments. find: cannot fork: Cannot allocate memory
Jeg vil ikke slette rekursivt fra en underordnet katalog som er grunnen til -maksimal dybde 1. Noen hjelp og forslag?
Kommentarer
først.
-exec ... '{}' \+
form av find
kan spare på gafler, ettersom dette etterligner xargs
i (moderne) versjoner av find
. Svar
cannot fork
-meldingen kan vises når bytteområdet er fullt. tmpfs
filsystemet (sannsynligvis) montert på /tmp
har kanskje ikke nødvendig plass til at kjernen kan opprette nye prosesser.
Sjekk om /tmp
fortsatt har plass ved å bruke df -h /tmp
. Hvis det er fullt, kan du prøve å rydde opp /tmp
først.
Kommentarer
- Bytt og tmpfs er ikke relatert bortsett fra at de begge er delmengder av tilgjengelig minne. Rom i
/tmp
er ikke nødvendig for å opprette nye prosesser. Rom i minnet er, men mengden er så liten at det er svært lite sannsynlig at det å fjerne en gaffel i/tmp
. - / tmp er ikke engang i nærheten av full.
- @Gilles, On Solaris
/tmp
er faktisktmpfs
og når det er helt (+ 100%) brukt vil du fåunable to fork; not enough space
meldinger. Meldingene OPEN får ercannot fork; unable to allocate memory
. Beklager at jeg foreslo en Solaris-løsning og ikke ba om operativsystemet først. OP kan sjekke verdiene tilulimit -a
ogulimit -aH
for å se om det er en minnegrense som kan treffes under denne prosessen. Det er også verdt å prøve å se på/etc/security/limits.conf
for å se om noen grenser er satt. - Jeg har hatt det samme problemet med mye plass i / tmp tilgjengelig, men ingen bytte er aktivert. [code] swapon / dev / sdXn [/ code] løste problemet.
-delete
i stedet for-exec rm {} \;
skal løse det. Bortsett fra det, er det bare å flytte-maxdepht 1
før-name
. Ikke glem å teste uten iv id = «56ab988372» ' >