मिडनाइट कमांडर की धीमी शुरुआत


19

क्या mc10-30 सेकंड खोलने से रोकने का कोई तरीका है ?


1
क्या आपने इसे संकलित किया --enable-vfs-smb? सुविधा को अक्षम करने का प्रयास करें। संस्करण 4.8.4 के साथ एक आम समस्या लगती है: mc बहुत ही कम शुरू
Marco

2
भागो strace -r -tt -o mc.strace mcदेखने के लिए जहां यह समय ले रहा है। यदि आपको इसकी व्याख्या करने में सहायता की आवश्यकता हो तो ट्रेस फ़ाइल अपलोड करें। ध्यान दें कि ट्रेस फ़ाइल में निजी जानकारी (कम से कम फ़ाइल नाम) हो सकती है, इस पर एक नज़र डालें और अपलोड करने से पहले आवश्यक होने पर इसे सुरक्षित करें।
गाइल्स का SO- बुराई का होना बंद '

1
एक ही समस्या थी, होस्टनाम को / etc / होस्ट (127.0.0.1 के रूप में) से जोड़ा, सभी सही हो गए

जवाबों:


5

यह अब मेरे लिए काम करता है। मै इस्तेमाल कर रहा हूँ

जीएनयू मिडनाइट कमांडर 4.8.21

स्ट्रेस लंबे समय तक प्रतीक्षा करें

connect(3, {sa_family=AF_INET, sin_port=htons(6011),
  sin_addr=inet_addr("x.x.x.x")}, 16) = ? ERESTARTSYS
  (To be restarted if SA_RESTART is set)' 

मैंने यह कोशिश की:

# hostname

इसके लिए इसका उपयोग करें /etc/hosts:

nameofhost=hostname

इस ऐड $nameofhostके लिए /etc/hostsके साथ शुरू लाइन पर

127.0.0.1 localhost ... $nameofhost 

चीयर्स!


12

mc / उपखंड एकीकरण एक लगातार अपराधी है; सत्यापित करने के लिए, प्रयास करें:

alias mc="mc --nosubshell"

1
यह एकमात्र समाधान था जिसने मेरे लिए काम किया। मैं देख सकता हूं कि मेरे पास cmd-o तक पहुंच है, लेकिन मैं कोई आदेश नहीं लिख सकता।
पनायोटिस

मेरे लिए काम नहीं करता है
Stiv

10

वास्तव में संपादन / आदि / मेजबानों ने मेरे लिए समस्या हल कर दी।
इस तथ्य के कारण शुरू करने के लिए मेरे mc को 10 सेकंड लगे क्योंकि स्टार्टअप mc के दौरान स्थानीय होस्टनाम को IP पते पर हल करने की कोशिश की जाती है।
मैंने निम्नलिखित लाइन (/ मेरा होस्टनाम FOO है) को / / होस्ट में जोड़ा 127.0.0.2 FOO.domain FOO है, जिससे समस्या का तुरंत हल हो गया है।


तुम क्यों का उपयोग किया था 127.0.0.2, लेकिन नहीं 127.0.0.1?
डेम्स

127.xyz में कोई भी x, y, z समान रूप से अच्छी तरह से काम करेगा (संपूर्ण IP रेंज स्थानीय मशीन के लिए आरक्षित है)
ggpp23

5

चेक

host `hostname`

शीघ्र परिणाम प्राप्त करें

आंतरिक सेवा से जुड़ने के लिए MC पहले hostname का उपयोग करते हैं

फेडोरा 18 पर इसी तरह की स्थिति में मैं होस्टनाम मूल्य / / / मेजबान में जोड़ता हूं और यह मदद करता है।


एमसी आंतरिक सेवा? हो सकता है कि हम mc को ठीक करने के लिए कुछ कॉन्फ़िगरेशन बदल सकते हैं, जिसे बदलने की आवश्यकता नहीं है / etc / मेजबान? या / etc / मेजबान टूटा हुआ है और mc यह सही होने की उम्मीद करता है?
कुंभ राशि

ओह, मैंने अभी पाया कि यह यहाँ काम करता है:alias mc='TERM=linux mc'
कुंभ राशि

कुछ बिंदुओं से वास्तव में / आदि / मेजबान टूट गया है। अपने स्वयं के होस्टनाम को आईपी के लिए हल करना असंभव है। मुझे नहीं पता कि एमसी वहां पर निर्भर क्यों है।
एमएमवी-आरयू

1
आपका क्या मतलब है host 'hostname'? यह उसी के रूप में host 'aaaa', host 'aaab'और गैर-मौजूदा होस्ट की अंतहीन सूची देता है। क्या yoy का मतलब है कि MC गैर-मौजूदा होस्ट को हल करने की कोशिश कर रहा है?
मंद

क्षमा करें, एकल उद्धरणों के स्थान पर apostrophe होना चाहिए। जवाब तय है। किसी तरह से हाँ। MC आपके hostname द्वारा खुद के सर्वर से संबंध बनाता है, इसलिए यह कोई भी होस्ट नहीं करता है और कई प्रयास करता है।
एमएमवी-आरयू

4

यह धीमा शुरू हो सकता है क्योंकि यह एक सबशेल शुरू करता है (जब आप Ctrl-O दबाते हैं) और उप-प्रारंभ होने पर ही UI प्रदर्शित करता है। मैं zsh का उपयोग करता हूं और मैंने देखा कि जब मैं अपनी ~/.zshrcफ़ाइल mc को हटाता हूं तो वह तुरंत शुरू हो जाती है।


2
देखें midnight-commander.org/ticket/3580 पृष्ठभूमि में subshell के लॉन्च के साथ एक संभव सुधार के लिए।
एलेब

तो, वहाँ इसे recompile करने की आवश्यकता है?
पनयोटिस

3

इसे शुरू करने में लगभग 10 सेकंड का समय लगा mc। चल strace -r -tt -o mc.strace mcरहा है मुझे मिल गया:

...
 0.000023 pipe([7, 8])              = 0
 0.000028 clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7fcad000fa50) = 3332
 0.000247 write(5, " PROMPT_COMMAND=${PROMPT_COMMAND"..., 75) = 75
 0.000050 rt_sigaction(SIGINT, {0x449960, [], SA_RESTORER, 0x7fcaced23740}, NULL, 8) = 0
 0.000034 select(8, [5 7], NULL, NULL, {10, 0}) = 1 (in [5], left {9, 999996})
 0.000039 read(5, " PROMPT_COMMAND=${PROMPT_COMMAND"..., 128) = 76
 0.000032 select(8, [5 7], NULL, NULL, {9, 999996}) = 1 (in [5], left {9, 985005})
 0.015050 read(5, "[yuri@yuri ~]  PROM", 128) = 19
 0.000031 select(8, [5 7], NULL, NULL, {9, 985005}) = 1 (in [5], left {9, 985001})
 0.000036 read(5, "PT_COM", 128)    = 6
 0.000026 select(8, [5 7], NULL, NULL, {9, 985001}) = 1 (in [5], left {9, 984998})
 0.000033 read(5, "MAND=", 128)     = 5
 0.000026 select(8, [5 7], NULL, NULL, {9, 984998}) = 1 (in [5], left {9, 984995})
 0.000033 read(5, "${PR", 128)      = 4
 0.000025 select(8, [5 7], NULL, NULL, {9, 984995}) = 1 (in [5], left {9, 984992})
 0.000034 read(5, "OMPT", 128)      = 4
 0.000025 select(8, [5 7], NULL, NULL, {9, 984992}) = 1 (in [5], left {9, 984989})
 0.000034 read(5, "_COM", 128)      = 4
 0.000026 select(8, [5 7], NULL, NULL, {9, 984989}) = 1 (in [5], left {9, 984986})
 0.000034 read(5, "MAND", 128)      = 4
 0.000025 select(8, [5 7], NULL, NULL, {9, 984986}) = 1 (in [5], left {9, 984983})
 0.000033 read(5, ":+$", 128)       = 3
 0.000025 select(8, [5 7], NULL, NULL, {9, 984983}) = 1 (in [5], left {9, 984980})
 0.000033 read(5, "PRO", 128)       = 3
 0.000025 select(8, [5 7], NULL, NULL, {9, 984980}) = 1 (in [5], left {9, 984977})
 0.000033 read(5, "MPT", 128)       = 3
 0.000025 select(8, [5 7], NULL, NULL, {9, 984977}) = 1 (in [5], left {9, 984974})
 0.000033 read(5, "_CO", 128)       = 3
 0.000025 select(8, [5 7], NULL, NULL, {9, 984974}) = 1 (in [5], left {9, 984971})
 0.000033 read(5, "MMA", 128)       = 3
 0.000026 select(8, [5 7], NULL, NULL, {9, 984971}) = 1 (in [5], left {9, 984968})
 0.000032 read(5, "ND;", 128)       = 3
 0.000025 select(8, [5 7], NULL, NULL, {9, 984968}) = 1 (in [5], left {9, 984965})
 0.000033 read(5, " }", 128)        = 2
 0.000026 select(8, [5 7], NULL, NULL, {9, 984965}) = 1 (in [5], left {9, 984962})
 0.000033 read(5, "'pw", 128)       = 3
 0.000025 select(8, [5 7], NULL, NULL, {9, 984962}) = 1 (in [5], left {9, 984959})
 0.000033 read(5, "d>", 128)        = 2
 0.000026 select(8, [5 7], NULL, NULL, {9, 984959}) = 1 (in [5], left {9, 984956})
 0.000032 read(5, "&8;", 128)       = 3
 0.000026 select(8, [5 7], NULL, NULL, {9, 984956}) = 1 (in [5], left {9, 984953})
 0.000032 read(5, "ki", 128)        = 2
 0.000025 select(8, [5 7], NULL, NULL, {9, 984953}) = 1 (in [5], left {9, 984950})
 0.000033 read(5, "ll ", 128)       = 3
 0.000026 select(8, [5 7], NULL, NULL, {9, 984950}) = 1 (in [5], left {9, 984947})
 0.000032 read(5, "-S", 128)        = 2
 0.000025 select(8, [5 7], NULL, NULL, {9, 984947}) = 1 (in [5], left {9, 984944})
 0.000033 read(5, "TO", 128)        = 2
 0.000025 select(8, [5 7], NULL, NULL, {9, 984944}) = 1 (in [5], left {9, 984941})
 0.000033 read(5, "P ", 128)        = 2
 0.000025 select(8, [5 7], NULL, NULL, {9, 984941}) = 1 (in [5], left {9, 984938})
 0.000033 read(5, "$$", 128)        = 2
 0.000033 select(8, [5 7], NULL, NULL, {9, 984938}) = 1 (in [5], left {9, 984935})
 0.000034 read(5, "'\r\n", 128)     = 3
 0.000025 select(8, [5 7], NULL, NULL, {9, 984935}) = 1 (in [5], left {9, 984886})
 0.000082 read(5, "bash: PROMPT_COMMAND: line 1: sy"..., 128) = 128
 0.000033 select(8, [5 7], NULL, NULL, {9, 984886}) = 1 (in [5], left {9, 984882})
 0.000071 read(5, "tory -r; ; pwd>&8;kill -STOP $$'"..., 128) = 48
 0.000061 select(8, [5 7], NULL, NULL, {9, 984882}) = 0 (Timeout)
 9.995037 rt_sigaction(SIGINT, {SIG_IGN, [], SA_RESTORER, 0x7fcaced23740}, NULL, 8) = 0
 0.000090 write(1, "\33[?1001s\33[?1002h\33[?1006h", 24) = 24
 0.000066 write(1, "\33[?2004h", 8) = 8
 0.000034 geteuid()                 = 1000
 0.000064 access("/home/yuri/.config/mc/filehighlight.ini", R_OK) = -1 ENOENT (No such file or directory)
 0.000061 access("/etc/mc/filehighlight.ini", R_OK) = 0
 0.000042 access("/etc/mc/filehighlight.ini", R_OK) = 0
 0.000044 stat("/etc/mc/filehighlight.ini", {st_mode=S_IFREG|0644, st_size=1119, ...}) = 0
 0.000035 open("/etc/mc/filehighlight.ini", O_RDONLY) = 9
...

इस आउटपुट को देखते हुए, मैंने mcखाली PROMPT_COMMAND( PROMPT_COMMAND= mc) के साथ शुरू करने का फैसला किया , और यह तुरंत शुरू हो गया। मैं वहाँ माना जाता था कि आम:

history -a; history -c; history -r;

UPD कुछ और खुदाई पर, यह पता चलता है कि इसका इतिहास ( PROMPT_COMMAND=';' strace -r -tt -o mc.strace -s 1000 mc) से कोई लेना-देना नहीं है :

 0.000197 write(5, " PROMPT_COMMAND=${PROMPT_COMMAND:+$PROMPT_COMMAND; }'pwd>&8;kill -STOP $$'\n", 75) = 75
 0.000068 rt_sigaction(SIGINT, {0x449960, [], SA_RESTORER, 0x7f12567fc660}, NULL, 8) = 0
 0.000049 select(8, [5 7], NULL, NULL, {10, 0}) = 1 (in [5], left {9, 999996})
 0.000055 read(5, " PROMPT_COMMAND=${PROMPT_COMMAND:+$PROMPT_COMMAND; }'pwd>&8;kill -STOP $$'\r\n", 128) = 76
 0.000050 select(8, [5 7], NULL, NULL, {9, 999996}) = 1 (in [5], left {9, 981008})
 0.019073 read(5, "bash: PROMPT_COMMAND: line 0: syntax error near unexpected token `;'\r\nbash: PROMPT_COMMAND: line 0: `;'\r\n", 128) = 105
 0.000041 select(8, [5 7], NULL, NULL, {9, 981008}) = 1 (in [5], left {9, 980786})
 0.000292 read(5, "[\33[1;30myuri\33[0m@\33[1;33myuri\33[0m ~]  PROM", 128) = 41
 0.000070 select(8, [5 7], NULL, NULL, {9, 980786}) = 1 (in [5], left {9, 980782})
 0.000075 read(5, "PT_COMMAN", 128) = 9
 0.000061 select(8, [5 7], NULL, NULL, {9, 980782}) = 1 (in [5], left {9, 980778})
 0.000058 read(5, "D=${PRO", 128)   = 7
 0.000047 select(8, [5 7], NULL, NULL, {9, 980778}) = 1 (in [5], left {9, 980775})
 0.000059 read(5, "MPT_CO", 128)    = 6
 0.000048 select(8, [5 7], NULL, NULL, {9, 980775}) = 1 (in [5], left {9, 980772})
 0.000058 read(5, "MMAND", 128)     = 5
 0.000047 select(8, [5 7], NULL, NULL, {9, 980772}) = 1 (in [5], left {9, 980768})
 0.000056 read(5, ":+$P", 128)      = 4
 0.000047 select(8, [5 7], NULL, NULL, {9, 980768}) = 1 (in [5], left {9, 980764})
 0.000057 read(5, "ROMPT", 128)     = 5
 0.000047 select(8, [5 7], NULL, NULL, {9, 980764}) = 1 (in [5], left {9, 980761})
 0.000056 read(5, "_COM", 128)      = 4
 0.000047 select(8, [5 7], NULL, NULL, {9, 980761}) = 1 (in [5], left {9, 980758})
 0.000057 read(5, "MAND", 128)      = 4
 0.000046 select(8, [5 7], NULL, NULL, {9, 980758}) = 1 (in [5], left {9, 980755})
 0.000057 read(5, "; }'", 128)      = 4
 0.000046 select(8, [5 7], NULL, NULL, {9, 980755}) = 1 (in [5], left {9, 980752})
 0.000056 read(5, "pwd>", 128)      = 4
 0.000047 select(8, [5 7], NULL, NULL, {9, 980752}) = 1 (in [5], left {9, 980749})
 0.000057 read(5, "&8;k", 128)      = 4
 0.000047 select(8, [5 7], NULL, NULL, {9, 980749}) = 1 (in [5], left {9, 980746})
 0.000057 read(5, "ill", 128)       = 3
 0.000058 select(8, [5 7], NULL, NULL, {9, 980746}) = 1 (in [5], left {9, 980743})
 0.000057 read(5, " -ST", 128)      = 4
 0.000046 select(8, [5 7], NULL, NULL, {9, 980743}) = 1 (in [5], left {9, 980740})
 0.000058 read(5, "OP ", 128)       = 3
 0.000046 select(8, [5 7], NULL, NULL, {9, 980740}) = 1 (in [5], left {9, 980736})
 0.000056 read(5, "$$'\r\n", 128)   = 5
 0.000048 select(8, [5 7], NULL, NULL, {9, 980736}) = 1 (in [5], left {9, 980721})
 0.000069 read(5, "bash: PROMPT_COMMAND: line 1: syntax error near unexpected token `;;'\r\nbash: PROMPT_COMMAND: line 1: `;; pwd>&8;kill -STOP $$'\r\n", 128) = 128
 0.000049 select(8, [5 7], NULL, NULL, {9, 980721}) = 1 (in [5], left {9, 980713})
 0.000062 read(5, "[\33[1;30myuri\33[0m@\33[1;33myuri\33[0m ~] ", 128) = 36
 0.000047 select(8, [5 7], NULL, NULL, {9, 980713}) = 0 (Timeout)
 9.990855 rt_sigaction(SIGINT, {SIG_IGN, [], SA_RESTORER, 0x7f12567fc660}, NULL, 8) = 0

मेरा तर्क यह है कि गलत तरीके से गड़बड़ mcकरता है PROMPT_COMMAND। यह बदल जाता है PROMPT_COMMANDताकि अगर इसमें शामिल हो ;, जो बैश त्रुटि को ट्रिगर करता है। जैसे, डिस्क्रिप्टर के लिए कुछ भी नहीं लिखा जाता है 8, जो समयबाह्य होने तक प्रक्रिया को अवरुद्ध करता है। यदि मैं गलत हूं तो मुझे सही करों।


1
मुझे पता है कि यह एक पुराना उत्तर है और सभी है। लेकिन शायद मैं भाग्यशाली हूं और आप यह समझा रहे हैं कि क्यों आप स्ट्रेस आउटपुट से निष्कर्ष निकालते हैं कि कुछ गलत था PROMPT_COMMAND। मेरे पास एक ही मुद्दा था और मैंने इसे history -aअपने से दूर करके भी हल किया PROMPT_COMMANDलेकिन मुझे पता नहीं है कि क्यों मदद करता है और मुझे नहीं पता कि उस संबंध में और जहां select(8, [6,7], ...)(जाहिर तौर पर टाइमआउट के साथ एमसी के धीमा होने का कारण बनता है) के बीच संबंध है। हो सकता है आप इसका समाधान समझने में मेरी मदद करें।
गिराएं

@degill कृपया मेरा अद्यतन उत्तर देखें।
x- यूरी

अद्यतन के लिए धन्यवाद! आप ठीक कह रहे हैं, बस डाल ;में PROMPT_COMMANDबाहर समय की एक ही प्रभाव है। मुझे पता है कि history -aमेरे PROMPT_COMMAND( वापस ~/.local/share/mc/bashrc) और सब कुछ ठीक काम करता है। हालांकि अभी भी दिलचस्प है;
9


2

मेरे पास यह मुद्दा बहुत लंबे समय से था और मैंने अब मिडनाइट कमांडर का उपयोग नहीं किया ...

लेकिन मुझे हाल ही में इसका हल मिला !!! मेरे मामले में, यह केवल मेरे वैकल्पिक शेल से संबंधित था: मैं मछली का उपयोग कर रहा हूं। http://fishshell.com/

एक साथ दो महान काम नहीं करता है। मैंने सिर्फ अपनी स्क्रिप्ट को बदल कर सुनिश्चित किया कि mc का उपयोग बैश में किया जाए और मछली को नहीं।


और मछली ऐसी समस्याओं का कारण क्यों बनेगी?
काउंटरमोड

2

बस FreeBSD पर इसी समस्या को हल किया। मुझे लगता है, /etc/hostsनिम्नलिखित तरीके से संपादित करना अधिक सही है :

127.0.0.1 localhost localhost.my.domain myhost.my.domain myhost

क्योंकि hostsफ़ाइल प्रविष्टि सिंटैक्स है ( होस्ट्स (5) - लिनक्स मैनुअल पेज देखें ):

IP_address canonical_hostname [aliases...]

इसलिए, यदि आप अपनी hostsफ़ाइल में कुछ ऐसा जोड़ते हैं

127.0.0.2 myhost.my.domain myhost

तब आपको मिलेगा

root@myhost:~# ping myhost
PING myhost.my.domain (127.0.0.2): 56 data bytes
ping: sendto: Can't assign requested address
ping: sendto: Can't assign requested address
ping: sendto: Can't assign requested address
ping: sendto: Can't assign requested address
^C
--- myhost.my.domain ping statistics ---
4 packets transmitted, 0 packets received, 100.0% packet loss

लेकिन अगर आप अपनी hostsफ़ाइल को पहले उदाहरण में संपादित करते हैं , तो आपको सही पिंग उत्तर मिलेगा:

root@myhost:~# ping myhost
PING localhost (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.060 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.050 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.030 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.040 ms
64 bytes from 127.0.0.1: icmp_seq=4 ttl=64 time=0.046 ms
64 bytes from 127.0.0.1: icmp_seq=5 ttl=64 time=0.036 ms
^C
--- localhost ping statistics ---
6 packets transmitted, 6 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.030/0.044/0.060/0.010 ms

MC दोनों तरह से तेजी से शुरू होता है।


2
mc -X

मेरे लिए काम किया (xterm अक्षम)


मेरे लिए भी यही समस्या थी। DISPLAYपर्यावरण चर को सेट किया गया था localhost:10.0, लेकिन उस सर्वर पर कोई एक्स सर्वर नहीं था, जिसमें कोई प्रदर्शन नहीं था।
fviktor 12

0

यदि आप अपने सर्वर पर SSH से कनेक्ट करने के लिए MobaXterm का उपयोग कर रहे हैं, तो आपको शीघ्र ही mc शुरू करने के लिए X11 अग्रेषण बंद करना पड़ सकता है। यह वही है जो mc की शुरुआत को धीमा कर देता है।


-1

लाइन "जो कुछ भी खोज करें" को हटाने की कोशिश करें /etc/resolv.conf

/etc/hosts लाइनें होनी चाहिए:

127.0.0.1 localhost

127.0.0.2 hostname.domain hostname

"hostname" आपका होस्टनाम है और "domain" आपका डोमेन है।


यह कुछ समझ में आता है केवल अगर मशीन 'नेट से जुड़ा नहीं है। वह फ़ाइल डीएचसीपी (या जब इंटरनेट कनेक्शन कॉन्फ़िगर किया गया है) द्वारा भरी जाती है।
वॉनब्रांड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.