diff options
Diffstat (limited to '')
-rw-r--r-- | src/sledjchisl/sledjchisl.c | 41 |
1 files changed, 30 insertions, 11 deletions
diff --git a/src/sledjchisl/sledjchisl.c b/src/sledjchisl/sledjchisl.c index 0ea29a3..9297772 100644 --- a/src/sledjchisl/sledjchisl.c +++ b/src/sledjchisl/sledjchisl.c | |||
@@ -6949,19 +6949,27 @@ jit library is loaded or the JIT compiler will not be activated. | |||
6949 | { | 6949 | { |
6950 | snprintf(toybuf, sizeof(toybuf), | 6950 | snprintf(toybuf, sizeof(toybuf), |
6951 | "%s %s/%s new-session -d -s %s -n '%s' \\; split-window -bhp 50 -t '%s:' bash -c '/usr/bin/valgrind --leak-check=full ./sledjchisl; cd %s; bash'", | 6951 | "%s %s/%s new-session -d -s %s -n '%s' \\; split-window -bhp 50 -t '%s:' bash -c '/usr/bin/valgrind --leak-check=full ./sledjchisl; cd %s; bash'", |
6952 | "; select-pane -t 0 -T 'SledjChisl'; select-pane -t 1 -T 'ROBUST'", | ||
6952 | Tcmd, scRun, Tsocket, Tconsole, Ttab, Tconsole, scRoot); | 6953 | Tcmd, scRun, Tsocket, Tconsole, Ttab, Tconsole, scRoot); |
6953 | } | 6954 | } |
6954 | else | 6955 | else |
6955 | { | 6956 | { |
6956 | // The sudo is only so that the session is owned by opensim, otherwise it's owned by whoever ran this script, which is a likely security hole. | 6957 | // The sudo is only so that the session is owned by opensim, otherwise it's owned by whoever ran this script, which is a likely security hole. |
6957 | // After the session is created, we rely on the scRun directory to be group sticky, so that anyone in the opensim group can attach to the tmux socket. | 6958 | // After the session is created, we rely on the scRun directory to be group sticky, so that anyone in the opensim group can attach to the tmux socket. |
6958 | snprintf(toybuf, sizeof(toybuf), | 6959 | snprintf(toybuf, sizeof(toybuf), |
6959 | "sudo -Hu %s %s %s/%s new-session -d -s %s -n '%s' \\; split-window -bhp 50 -t '%s:' bash -c '/usr/bin/valgrind --leak-check=full ./sledjchisl; cd %s; bash'", | 6960 | "sudo -Hu %s %s %s/%s new-session -d -s %s -n '%s' \\; split-window -bhp 50 -t '%s:' bash -c '/usr/bin/valgrind --leak-check=full ./sledjchisl; cd %s; bash'", |
6960 | scUser, Tcmd, scRun, Tsocket, Tconsole, Ttab, Tconsole, scRoot); | 6961 | scUser, Tcmd, scRun, Tsocket, Tconsole, Ttab, Tconsole, scRoot); |
6961 | } | 6962 | } |
6962 | i = system(toybuf); | 6963 | i = system(toybuf); |
6963 | if (!WIFEXITED(i)) | 6964 | if (!WIFEXITED(i)) |
6964 | E("tmux new-session command failed! %s", toybuf); | 6965 | E("tmux new-session command failed! %s", toybuf); |
6966 | else | ||
6967 | { | ||
6968 | snprintf(toybuf, sizeof(toybuf), "%s %s/%s select-pane -t 0 -T 'SledjChisl'", Tcmd, scRun, Tsocket); | ||
6969 | i = system(toybuf); | ||
6970 | if (!WIFEXITED(i)) | ||
6971 | E("tmux select-pane command failed!"); | ||
6972 | } | ||
6965 | } | 6973 | } |
6966 | // Join the session. | 6974 | // Join the session. |
6967 | memset(toybuf, 0, sizeof(toybuf)); | 6975 | memset(toybuf, 0, sizeof(toybuf)); |
@@ -7523,6 +7531,10 @@ T("ARGS - %i |%s| |%s|", currentMode, toys.optargs[0], target); | |||
7523 | c = xmprintf("mono Robust.exe -inidirectory=%s/config/ROBUST", scRoot); | 7531 | c = xmprintf("mono Robust.exe -inidirectory=%s/config/ROBUST", scRoot); |
7524 | sendTmuxCmd(d, c); | 7532 | sendTmuxCmd(d, c); |
7525 | free(c); | 7533 | free(c); |
7534 | c = xmprintf("%s %s/%s select-pane -t 1 -T 'ROBUST'", Tcmd, scRun, Tsocket); | ||
7535 | i = system(c); | ||
7536 | if (!WIFEXITED(i)) | ||
7537 | E("tmux select-pane command failed!"); | ||
7526 | waitTmuxText(d, "INITIALIZATION COMPLETE FOR ROBUST"); | 7538 | waitTmuxText(d, "INITIALIZATION COMPLETE FOR ROBUST"); |
7527 | I("ROBUST is done starting up."); | 7539 | I("ROBUST is done starting up."); |
7528 | // la = waitLoadAverage(la, loadAverageInc / 3.0, simTimeOut / 3); | 7540 | // la = waitLoadAverage(la, loadAverageInc / 3.0, simTimeOut / 3); |
@@ -7663,17 +7675,24 @@ sims = -- Note these are .shini / tmux tab short names. | |||
7663 | E("tmux new-window command failed!"); | 7675 | E("tmux new-window command failed!"); |
7664 | else | 7676 | else |
7665 | { | 7677 | { |
7666 | if (0 == doWait) | 7678 | snprintf(toybuf, sizeof(toybuf), "%s %s/%s select-pane -t %s.0 -T '%s'", Tcmd, scRun, Tsocket, nm, name); |
7667 | { | 7679 | r = system(toybuf); |
7668 | memset(toybuf, 0, sizeof(toybuf)); | 7680 | if (!WIFEXITED(r)) |
7669 | snprintf(toybuf, sizeof(toybuf), "INITIALIZATION COMPLETE FOR %s", name); | 7681 | E("tmux select-pane command failed!"); |
7670 | waitTmuxText(nm, toybuf); | ||
7671 | I("%s is done starting up.", name); | ||
7672 | la = waitLoadAverage(la, loadAverageInc, simTimeOut); | ||
7673 | } | ||
7674 | else | 7682 | else |
7675 | I("Not waiting for %s to finish starting up.", name); | 7683 | { |
7676 | count++; | 7684 | if (0 == doWait) |
7685 | { | ||
7686 | memset(toybuf, 0, sizeof(toybuf)); | ||
7687 | snprintf(toybuf, sizeof(toybuf), "INITIALIZATION COMPLETE FOR %s", name); | ||
7688 | waitTmuxText(nm, toybuf); | ||
7689 | I("%s is done starting up.", name); | ||
7690 | la = waitLoadAverage(la, loadAverageInc, simTimeOut); | ||
7691 | } | ||
7692 | else | ||
7693 | I("Not waiting for %s to finish starting up.", name); | ||
7694 | count++; | ||
7695 | } | ||
7677 | } | 7696 | } |
7678 | free(newPath); | 7697 | free(newPath); |
7679 | free(path); | 7698 | free(path); |