Geceyarısı Komutanının yavaş başlaması


19

mcAçmanın 10-30 saniye sürmesini önlemenin bir yolu var mı ?


1
Bunu derledin mi --enable-vfs-smb? Özelliği devre dışı bırakmayı deneyin. 4.8.4 sürümünde sık görülen bir sorun gibi görünüyor: mc çok YAVAŞ başlangıç
Marco

2
strace -r -tt -o mc.strace mcNerede zaman aldığını görmek için koş . Yorumlama konusunda yardıma ihtiyacınız varsa izleme dosyasını yükleyin. İzleme dosyasının özel bilgiler (en azından dosya adları) içerebileceğini, dosyaya bir göz atabileceğini ve yüklemeden önce gerekirse temizleyeceğini unutmayın.
Gilles 'SO- kötü olmayı bırak'

1
aynı sorun vardı, / etc / hosts (tabii 127.0.0.1 olarak) için hostname eklendi, hepsi mükemmel oldu

Yanıtlar:


5

Şimdi benim için çalışıyor. Ben kullanıyorum

GNU Gece Yarısı Komutanı 4.8.21

uzun süre beklemek

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)' 

Bunu denedim:

# hostname

Şunun için kullanın /etc/hosts:

nameofhost=hostname

bunu $nameofhostile /etc/hostsbaşlayan çevrimiçi duruma ekle

127.0.0.1 localhost ... $nameofhost 

Şerefe!


12

mc / subshell entegrasyonu sık görülen bir suçludur; doğrulamak için şunu deneyin:

alias mc="mc --nosubshell"

1
Benim için işe yarayan tek çözüm buydu. Cmd-o'ya erişebildiğimi görebiliyorum, ancak komut yazamıyorum.
Panayotis

benim için çalışmıyor
stiv

10

Aslında / etc / host'ları düzenlemek benim için problemi çözdü.
Başarım sırasında mc yerel ana bilgisayar adını bir IP adresine çözümlemeye çalıştığı için mc'imin başlaması 10 saniye sürdü.
Ben / etc / hosts aşağıdaki satır (benim ana bilgisayar adı FOO olduğunu) ekledi 127.0.0.2 FOO.domain FOO Bu anında sorunu çözdü.


Neden kullandın 127.0.0.2ama kullanmadın 127.0.0.1?
Dims

127.xyz'deki herhangi bir x, y, z eşit derecede iyi çalışır (tüm IP aralığı yerel makine için ayrılmıştır)
ggpp23

5

Kontrol

host `hostname`

hızlı sonuç al

MC, dahili hizmete bağlanmak için önce ana bilgisayar adını kullanır

Benzer bir durumda Fedora 18 üzerinde / etc / hosts için hostname değeri ekliyorum ve yardımcı oluyor.


mc dahili hizmet? mc değiştirmek / etc / hosts gerektirmeyen düzeltmek için bazı yapılandırmayı değiştirebilir miyiz? veya / etc / hosts bozuldu ve mc düzeltilmesini bekliyor mu?
Kova Gücü

oh, bunun burada çalıştığını buldum:alias mc='TERM=linux mc'
Kova Gücü

Gerçekten / etc / hosts, bazı açılardan bozuldu. Kendi ip için kendi ana bilgisayar adını çözmek imkansız. Mc neden orada buna bağımlı bilmiyorum.
mmv-ru

1
Ne demek istiyorsun host 'hostname'? Bu aynı döner host 'aaaa', host 'aaab've var olmayan ana sonsuz listesini. Yoy, MC'nin mevcut olmayan ana bilgisayarı çözmeye çalıştığı anlamına mı geliyordu?
Dims

Maalesef kesme işareti tek tırnak yerine bulunmalıdır. Yanıt düzeltildi. Bir şekilde Evet. MC, kendi sunucunuzla ana bilgisayar adınızla bağlantı kurar, böylece var olmayan ana makineyi alır ve birçok deneme yapar.
mmv-ru

4

Yavaş başlayabilir, çünkü bir alt kabuk başlatır (Ctrl-O'ya bastığınızda gösterilir) ve kullanıcı arayüzünü yalnızca alt kabuk başladığında gösterir. Zsh kullanıyorum ve ~/.zshrcmc dosyamı hemen kaldırdığımda fark ettim .


2
Bkz midnight-commander.org/ticket/3580 arka planda altkabuk başlatarak olası bir iyileştirme.
aleb

Yani, onu yeniden derlemeye gerek var mı?
Panayotis

3

Başlaması yaklaşık 10 saniye sürdü mc. Koşu strace -r -tt -o mc.strace mcvar:

...
 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
...

Bu çıktıya baktığımda mcboş PROMPT_COMMAND( PROMPT_COMMAND= mc) ile başlamaya karar verdim ve anında başladı. Orada sözde yaygın vardı:

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

UPD Biraz daha kazma üzerine, tarihle ilgisi olmadığı ortaya çıkıyor ( 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

Konjonktürüm yanlış bir şekilde mckarışması PROMPT_COMMAND. İçerirse, bash hatasını tetikleyecek PROMPT_COMMANDşekilde değişir ;. Bu nedenle, 8zaman aşımına kadar süreci engelleyen tanımlayıcıya hiçbir şey yazılmaz . Yanlışsam düzelt.


1
Bunun eski bir cevap olduğunu biliyorum. Ama belki şanslıyım ve neden bir şeyin yanlış olduğu sonucundan çıktığını açıklamakta fayda var PROMPT_COMMAND. Ben aynı sorunu vardı ve ben de kaldırarak çözmüş history -ane biz gelen PROMPT_COMMANDancak yardımcı olur ve bunu arasındaki bağlantı hiçbir fikrim yok neden hiçbir fikrim yok select(8, [6,7], ...)(görünüşte zaman aşımı ile MC yavaş aşağı neden olur) 'dir. Belki de çözümü anlamama yardımcı olabilirsiniz.
degill

@degill Lütfen güncellenmiş cevabımı görün.
x-yuri

Güncelleme için teşekkürler! Sadece koyarak, doğru ;yer PROMPT_COMMAND, zaman aşımına aynı etkiye sahip midir. Ben (içinde ) history -ageri eklendi biliyorum ve her şey iyi çalışıyor. Yine de ilginç olan şeyPROMPT_COMMAND~/.local/share/mc/bashrc;
degill

4
Akış yukarı hata girişi gece yarısı- commander.org/ticket/3534 adresindedir .
egmont

2

Bu sorunu çok uzun süre yaşadım ve artık Midnight Commander kullanmıyorum ...

Ama son zamanlarda çözümü buldum !!! Benim durumumda, sadece alternatif kabuğumla ilgiliydim: Balık kullanıyorum. http://fishshell.com/

İkisi birlikte iyi çalışmıyor. Ben sadece mc balık bash değil bash kullanmak emin olmak için benim senaryo değiştirdi.


Ve balıklar neden bu tür sorunlara neden olur?
karşı

2

FreeBSD'de de aynı sorunu çözdüm. Bence, /etc/hostsaşağıdaki şekilde düzenlemek daha doğru :

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

çünkü hostsdosya girişi sözdizimi (bkz. hosts (5) - Linux manuel sayfası ):

IP_address canonical_hostname [aliases...]

Yani, eğer hostsdosyanıza sadece

127.0.0.2 myhost.my.domain myhost

o zaman alacaksın

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

Ancak hostsdosyanızı ilk örnekteki gibi düzenlerseniz , doğru ping yanıtını alırsınız:

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 her iki yönde de hızlı başlar.


2
mc -X

benim için çalıştı (xterm devre dışı)


Benim için de sorun buydu. DISPLAYortam değişkeni olarak ayarlandı localhost:10.0, ancak bu sunucuda ekranı olmayan bir X sunucusu dinlenmedi.
fviktor

0

Sunucunuzda SSH'ye bağlanmak için MobaXterm kullanıyorsanız, mc'yi kısa süre içinde başlatmak için X11 iletmeyi kapatmanız gerekebilir. Mc başlangıcını yavaşlatan şey budur.


-1

"Search whatever.something" satırını /etc/resolv.conf

/etc/hosts satırları olmalıdır:

127.0.0.1 localhost

127.0.0.2 hostname.domain hostname

"hostname", ana makine adınız ve "domain" ise alan adınızdır.


Bu sadece makine asla ağa bağlı değilse bir anlam ifade eder. Bu dosya DHCP tarafından doldurulur (veya İnternet bağlantısı yapılandırıldığında).
vonbrand
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.