Y a-t-il un moyen de prévenir mc
de prendre 10-30 secondes à ouvrir?
Ça marche pour moi maintenant. j'utilise
GNU Midnight Commander 4.8.21
strace attend longtemps
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)'
J'ai essayé ceci:
# hostname
utilisez ceci pour /etc/hosts
:
nameofhost=hostname
ajoute ça $nameofhost
à la /etc/hosts
en ligne commençant par
127.0.0.1 localhost ... $nameofhost
À votre santé!
MC/Subshell L'intégration est un coupable fréquent; Pour vérifier, essayez:
alias mc="mc --nosubshell"
Réellement éditer /etc/hosts
a résolu le problème pour moi.
Mon mc
a pris 10 secondes pour commencer à cause du fait que lors du démarrage mc
tente de résoudre le nom d'hôte local à une adresse IP.
J'ai ajouté à /etc/hosts
la ligne suivante (mon nom d'hôte est FOO)
127.0.0.2 FOO.domain FOO
Cela a instantanément résolu le problème.
Cela pourrait commencer lentement car il commence un sous-(-ner montré lorsque vous appuyez sur Ctrl + O) et affiche l'UI uniquement lorsque le sous-groupe a commencé. J'utilise ZSH et j'ai remarqué quand je supprimais mon ~/.zshrc
File MC commence instantanément.
Il a fallu environ 10 secondes pour commencer mc
. Fonctionnement strace -r -tt -o mc.strace mc
J'ai eu:
...
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
...
En regardant cette sortie, j'ai décidé de commencer mc
avec vide Prompt_COMMAND
(Prompt_COMMAND= mc
), et cela a commencé instantanément. J'avais là supposément commun:
history -a; history -c; history -r;
UPD sur un peu plus de creuser, il s'avère que cela n'a rien à voir avec l'histoire (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
Ma conjoncture est que mc
mess avec Prompt_COMMAND
de mauvaise manière. Ça change Prompt_COMMAND
de sorte que s'il contient ;
, cela déclenche une erreur Bash. En tant que tel, rien n'est écrit au descripteur 8
, qui bloque le processus jusqu'à l'heure. Corrige moi si je me trompe.
Il suffit de résoudre le même problème sur FreeBSD. Je pense que c'est plus correct d'éditer /etc/hosts
de la manière suivante:
127.0.0.1 localhost localhost.my.domain myhost.my.domain myhost
parce que la syntaxe de saisie de fichier hosts
(voir HOSTS (5) - page manuelle Linux ):
IP_address canonical_hostname [aliases...]
Donc, si vous ajoutez simplement votre fichier hosts
quelque chose comme
127.0.0.2 myhost.my.domain myhost
alors vous obtiendrez
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
Mais si vous modifiez votre fichier hosts
comme dans le premier exemple, vous obtiendrez la bonne réponse ping:
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 commence vite les deux sens.
J'ai eu cette question depuis très longtemps et j'ai fini par ne plus utiliser le commandant de minuit ...
Mais j'ai récemment trouvé la solution !!! Dans mon cas, c'était uniquement lié à mon alternative Shell: j'utilise du poisson. http://fishshell.com/
Les deux ensemble ne fonctionnent pas bien. Je viens de changer mon script pour vous assurer que MC utilise Bash et non pas de poisson.
mc -X
travaillé pour moi (xterm handicapé)
Affichage =; mc
travaille pour moi. Utilisation MOBAXTERM X11-Forwarding, redirection d'affichage automatique.
Si vous utilisez MOBAXTERM pour vous connecter à SSH sur votre serveur, vous devrez peut-être désactiver le transfert X11 pour commencer Mc Bientôt. C'est ce qui ralentit le démarrage MC.