So kann timeout
das ultimative Zeitlimit für einen Prozess/Befehl wie erwähnt here und here festgelegt werden. Beispiel: timeout 300 sleep 1000
kehrt nach 300 Sekunden selbst anstelle von 1000 zurück.So erhöhen Sie die Zeitlimitgrenze für einen Prozess, der mit dem Befehl 'timeout' ausgeführt wird
Aber gibt es eine Möglichkeit, dieses Limit im laufenden Betrieb zu ändern, während der Prozess noch läuft? Das ist also, was ich suche.
at time 0 : timeout 300 python long_run.py
at time 250 : <some way to extend the timeout limit by another 300 minutes or so>
Ich habe versucht, zwei Möglichkeiten, folgende, konnte es aber nicht funktioniert.
Durch GDB
Ich versuchte timeout
Prozess mit gdb zu befestigen. Es zeigte folgenden Aufruf-Stack, aber ich konnte keine Variable finden, deren Wert ich aktualisieren könnte, um das Zeitlimit zu erhöhen.
(gdb) where
#0 0x00007f10b49f6e8c in __libc_waitpid (pid=15753, stat_loc=0x7fff0c799f30, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:31
#1 0x00000000004022d8 in ??()
#2 0x00007f10b4643f45 in __libc_start_main (main=0x401fc0, argc=4, argv=0x7fff0c79a0e8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fff0c79a0d8)
at libc-start.c:287
#3 0x0000000000402479 in ??()
0 0x00007f10b49f6e8c in __libc_waitpid (pid=15753, stat_loc=0x7fff0c799f30, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:31
31 ../sysdeps/unix/sysv/linux/waitpid.c: No such file or directory.
(gdb) p *(stat_loc)
$2 = 4204240
Durch/proc/
Gibt es alles, was wir in/proc // Grenzen oder stat-Datei tun können Zeitlimit für timeout
Prozess oder Kindprozess zu aktualisieren.
Haben Sie _have_, um es speziell über 'Timeout' zu tun? – ilkkachu
Was erfordert eine Verlängerung des Timeouts? Warum nicht einfach das Timeout für 550 Sekunden einstellen? – chepner
Anders gesagt, was passiert zum Zeitpunkt 250, dass Sie entscheiden, das Timeout zu verlängern? Sie können das längere Zeitlimit für den Start einplanen und dann zum Zeitpunkt 250 entscheiden, ob der Prozess vorzeitig abgebrochen oder bis zum ursprünglichen Zeitlimit fortgesetzt werden soll. – chepner