Pytania otagowane jako fork

7
Dlaczego musimy rozwidlać się, aby tworzyć nowe procesy?
W Uniksie, ilekroć chcemy utworzyć nowy proces, rozwidlamy bieżący proces, tworząc nowy proces potomny, który jest dokładnie taki sam jak proces macierzysty; następnie wykonujemy wywołanie systemowe exec, aby zastąpić wszystkie dane z procesu nadrzędnego danymi z nowego procesu. Dlaczego w pierwszej kolejności tworzymy kopię procesu nadrzędnego, a nie bezpośrednio nowego?

3
Dlaczego nie mogę rozbić mojego systemu bombą widełkową?
Ostatnio kopałem informacje o procesach w GNU / Linux i spotkałem niesławną bombę widelcową: :(){ : | :& }; : Teoretycznie ma się powielać w nieskończoność, dopóki systemowi nie zabraknie zasobów ... Jednak próbowałem przetestować zarówno Debian CLI, jak i dystrybucję GUI Mint i wydaje się, że nie ma to …
54 linux  process  fork  ulimit 

4
Dlaczego program z fork () czasami drukuje dane wyjściowe wiele razy?
W Programie 1 Hello worldjest drukowany tylko raz, ale kiedy go wyjmuję \ni uruchamiam (Program 2), wydruk jest drukowany 8 razy. Czy ktoś może mi wyjaśnić znaczenie \ntutaj i jak to wpływa na fork()? Program 1 #include <sys/types.h> #include <unistd.h> #include <stdio.h> #include <stdlib.h> int main() { printf("hello world...\n"); fork(); …
50 c  fork 

2
Dlaczego domyślny mechanizm tworzenia procesów jest rozwidlony?
Wywołanie systemowe UNIX do tworzenia procesów, fork (), tworzy proces potomny poprzez skopiowanie procesu macierzystego. Rozumiem, że prawie zawsze następuje wywołanie exec () w celu zastąpienia przestrzeni pamięci procesu potomnego (w tym segmentu tekstowego). Kopiowanie przestrzeni pamięci rodzica w fork () zawsze wydawało mi się marnotrawstwem (chociaż zdaję sobie sprawę, …



3
Tworzenie wątków kończy się niepowodzeniem z „Zasobem tymczasowo niedostępnym” z jądrem 4.3
Używam serwera dokującego na Arch Linux (jądro 4.3.3-2) z kilkoma kontenerami. Od czasu mojego ostatniego restartu zarówno serwer dokera, jak i losowe programy w kontenerach ulegają awarii z komunikatem o niemożności utworzenia wątku lub (rzadziej) rozwidlenia. Konkretny komunikat o błędzie różni się w zależności od programu, ale większość z nich …
39 linux  docker  limit  fork  thread 

3
Fork vs Clone na jądrze 2.6 jądra Linux
Mam pewne wątpliwości dotyczące rozwidlenia i klonowania. Widziałem to: widelec służy do procesów, a klon do wątków fork po prostu wywołuje klon, klon jest używany do wszystkich procesów i wątków Czy któreś z nich są dokładne? Jaka jest różnica między tymi dwoma syscallami z jądrem Linuksa 2.6?
37 linux  fork 

3
fork: retry: zasób tymczasowo niedostępny
Podczas łączenia się z moim serwerem otrzymuję, -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 Próbuję również wykonać następujące polecenia, a wynik jest taki sam. -bash-4.1$ df -h -bash: …
31 linux  fork 

3
Czy fork () natychmiast kopiuje całą stertę procesów w systemie Linux?
fork()Wywołanie systemowe klonuje proces dziecko od uruchomionego procesu. Dwa procesy są identyczne, z wyjątkiem ich PID. Oczywiście, jeśli procesy tylko czytają ze swoich stosów, a nie zapisują, kopiowanie sterty byłoby ogromnym marnotrawstwem pamięci. Czy cała kupa procesu została skopiowana? Czy jest zoptymalizowany w taki sposób, że tylko pisanie wyzwala kopię …
30 linux  fork 

3
Kiedy potrzebujesz „nohup”, jeśli już używasz „&”?
Po pierwsze to pytanie jest powiązane, ale zdecydowanie nie to samo, co to bardzo miłe pytanie: Różnica między nohup, disown i & Chcę coś zrozumieć: kiedy to robię „&”, rozwidlam się, prawda? Czy kiedykolwiek warto robić „nohup ...” czy jest to po prostu wystarczające? Czy ktoś mógłby pokazać przypadek, w …
26 shell  nohup  fork 

3
Czy bash obsługuje rozwidlenie podobne do C's fork ()?
Mam skrypt, który chciałbym rozwidlić w pewnym momencie, więc działają dwie kopie tego samego skryptu. Na przykład chciałbym, aby istniał następujący skrypt bash: echo $$ do_fork() echo $$ Jeśli ten skrypt bash naprawdę istniał, oczekiwanym wynikiem byłoby: <ProcessA PID> <ProcessB PID> <ProcessA PID> lub <ProcessA PID> <ProcessA PID> <ProcessB PID> …
25 shell  fork 

3
W jaki sposób kopiowanie przy zapisie w fork () obsługuje wiele fork?
Według Wikipedii (co może być błędne) Po wydaniu wywołania systemowego fork () tworzona jest kopia wszystkich stron odpowiadających procesowi nadrzędnemu, ładowana przez system operacyjny do osobnego miejsca w pamięci dla procesu potomnego. Ale w niektórych przypadkach nie jest to konieczne. Rozważ przypadek, gdy dziecko wykonuje execwywołanie systemowe ("używane do wykonania …
23 linux  c  fork 

1
Jak działa bomba widełkowa?
OSTRZEŻENIE NIE PRÓBUJ URUCHOMIĆ TEGO NA MASZYNIE PRODUKCYJNEJ Czytając stronę Wikipedii na ten temat , ogólnie śledzę, co się dzieje z następującym kodem: :(){ :|:& };: fragment opisu Następująca bomba widelca została zaprezentowana jako sztuka w 2002 roku;56 jego dokładne pochodzenie nie jest znane, ale istniało na Usenecie przed 2002 …
22 bash  shell-script  zsh  fork 

4
Po rozwidleniu (), gdzie dziecko rozpoczyna wykonywanie?
Próbuję nauczyć się programowania w systemie UNIX i napotkałem pytanie dotyczące fork (). Rozumiem, że fork () tworzy identyczny proces aktualnie uruchomionego procesu, ale od czego się zaczyna? Na przykład, jeśli mam kod int main (int argc, char **argv) { int retval; printf ("This is most definitely the parent process\n"); …
22 process  c  fork  api 

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.