<html><head><style type='text/css'>p { margin: 0; }</style></head><body><div style='font-family: arial,helvetica,sans-serif; font-size: 12pt; color: #000000'>(answers inline)<br><div><div><br></div><div><font face="Helvetica, Arial, sans-serif">&gt; So, my first question is how do I set up a basic script file&nbsp;</font></div><div><font face="Helvetica, Arial, sans-serif">&gt; with these commands in it. &nbsp;I can fill in all the details later.</font></div><div><font face="Helvetica, Arial, sans-serif">&gt;&nbsp;</font></div><div><font face="Helvetica, Arial, sans-serif">&gt; cd ~/cgminer</font></div><div><font face="Helvetica, Arial, sans-serif">&gt; export .....</font></div><div><font face="Helvetica, Arial, sans-serif">&gt; ./cgminer .....</font></div><div><font face="Helvetica, Arial, sans-serif"><br></font></div><div><font face="Helvetica, Arial, sans-serif">Yes, you can do that. You'll need to set the execute bit using "chmod +x miner1" or "chmod 755 miner1" or similar.</font></div><div><font face="Helvetica, Arial, sans-serif"><br></font></div><div><font face="Helvetica, Arial, sans-serif">Usually you'll want to put this as the first line of your script:</font></div><div><font face="Helvetica, Arial, sans-serif">#!/bin/bash</font></div><div><font face="Helvetica, Arial, sans-serif">But it's not strictly necessary. It comes into play usually when you're in one shell and the script is written for another, but it's a good habit to get into.</font></div><div><font face="Helvetica, Arial, sans-serif"><br></font></div><div><font face="Helvetica, Arial, sans-serif">&gt; Also, how do I put comments in the file?</font></div><div><font face="Helvetica, Arial, sans-serif"><br></font></div><div><font face="Helvetica, Arial, sans-serif">bash and most Linux shells use # to start comments. Anything after the pound on a line is a comment.</font></div><div><font face="Helvetica, Arial, sans-serif"><br></font></div><div><font face="Helvetica, Arial, sans-serif">&gt; Now, as I said, the command for each graphics card&nbsp;</font></div><div><font face="Helvetica, Arial, sans-serif">&gt; is unique. &nbsp;So, I need to set up a MINER2, MINER3,&nbsp;</font></div><div><font face="Helvetica, Arial, sans-serif">&gt; and MINER4 scripts, which are customized for the&nbsp;</font></div><div><font face="Helvetica, Arial, sans-serif">&gt; individual graphics cards.</font></div><div><font face="Helvetica, Arial, sans-serif"><br></font></div><div><font face="Helvetica, Arial, sans-serif">Well, you could make one script that takes a parameter and use something like:</font></div><div><font face="Helvetica, Arial, sans-serif">if [ "$1" = 1 ]; then</font></div><div><font face="Helvetica, Arial, sans-serif">&nbsp; #miner1 specific commands...</font></div><div><font face="Helvetica, Arial, sans-serif">elif [ "$1" = 2 ]; then</font></div><div><font face="Helvetica, Arial, sans-serif">&nbsp; #miner2 specific commands...</font></div><div><font face="Helvetica, Arial, sans-serif">#and so on...</font></div><div><font face="Helvetica, Arial, sans-serif">elif [ "$1" = --all ]</font></div><div><font face="Helvetica, Arial, sans-serif">&nbsp; #I'll come back to this</font></div><div><font face="Helvetica, Arial, sans-serif">else</font></div><div><font face="Helvetica, Arial, sans-serif">&nbsp; echo "USAGE: $0 [--all|miner-num]" 1&gt;&amp;2; exit 1</font></div><div><font face="Helvetica, Arial, sans-serif">fi</font></div><div><br></div><div><font face="Helvetica, Arial, sans-serif">You could also use "case" instead of if/elif/else/fi and that might be cleaner. As always, there's more than one way to skin the cat.</font></div><div><font face="Helvetica, Arial, sans-serif"></font></div><div><font face="Helvetica, Arial, sans-serif"><br></font></div><div><font face="Helvetica, Arial, sans-serif">&gt; Finally, I want to create a master script to start all the other&nbsp;</font></div><div><span style="font-family: Helvetica, Arial, sans-serif;">&gt;</span><span style="font-family: Helvetica, Arial, sans-serif;">&nbsp;</span><font face="Helvetica, Arial, sans-serif">4. &nbsp;Here's the trick. &nbsp;I want the master script to start each of&nbsp;</font></div><div><span style="font-family: Helvetica, Arial, sans-serif;">&gt;</span><span style="font-family: Helvetica, Arial, sans-serif;">&nbsp;</span><font face="Helvetica, Arial, sans-serif">the sub scripts in its own window and continue executing&nbsp;</font></div><div><span style="font-family: Helvetica, Arial, sans-serif;">&gt;</span><span style="font-family: Helvetica, Arial, sans-serif;">&nbsp;</span><font face="Helvetica, Arial, sans-serif">commands in the master script. &nbsp;I don't want the master&nbsp;</font></div><div><span style="font-family: Helvetica, Arial, sans-serif;">&gt;</span><span style="font-family: Helvetica, Arial, sans-serif;">&nbsp;</span><font face="Helvetica, Arial, sans-serif">script to hang waiting for MINER1 to exit before executing</font></div><div><span style="font-family: Helvetica, Arial, sans-serif;">&gt;</span><span style="font-family: Helvetica, Arial, sans-serif;">&nbsp;</span><font face="Helvetica, Arial, sans-serif">MINER2, and so forth.</font></div><div><span style="font-family: Helvetica, Arial, sans-serif;">&gt;&nbsp;</span></div><div><span style="font-family: Helvetica, Arial, sans-serif;">&gt;</span><span style="font-family: Helvetica, Arial, sans-serif;">&nbsp;</span><font face="Helvetica, Arial, sans-serif">Let's say that the master script is called START-MINERS.</font></div><div><font face="Helvetica, Arial, sans-serif"><br></font></div><div><font face="Helvetica, Arial, sans-serif">Well, do you really need separate windows or do you just need parallel execution? Generally, you can use the ampersand (&amp;) at the end of a line to run that command in the background. If the miner commands have output you want to view on the screen, you can start an xterm to open a window for each one. I use kde, so I tend to use konsole but for this purpose xterm will work or you can check the options for whatever terminal window you like to use. In the above script under "--all" where I said I'd come back to it, you could put:</font></div><div><font face="Helvetica, Arial, sans-serif"><br></font></div><div><font face="Helvetica, Arial, sans-serif">for miner in 1 2 3 4</font></div><div><font face="Helvetica, Arial, sans-serif">do</font></div><div><font face="Helvetica, Arial, sans-serif">&nbsp; xterm -e $0 $miner &amp;</font></div><div><font face="Helvetica, Arial, sans-serif">done&nbsp;</font></div><div><br></div><div>dollar-zero is the current script so you're re-running the current script once each for 1, 2, 3, 4. Although since it's just 4 you might just repeat the command four times instead. Or go the other way and have a config file that defines each miner instance, but that seems like a down-the-road enhancement.&nbsp;</div><div><br></div><div><span style="font-family: Helvetica, Arial, sans-serif;">&gt;</span><span style="font-family: Helvetica, Arial, sans-serif;">&nbsp;</span><font face="Helvetica, Arial, sans-serif">Finally, I want to kick off the whole thing from one icon on</font></div><div><font face="Helvetica, Arial, sans-serif">&gt; the desktop which triggers START-MINERS which triggers</font></div><div><font face="Helvetica, Arial, sans-serif">&gt; MINER1, 2, 3, and 4. &nbsp;I don't care if the master script has a&nbsp;</font></div><div><font face="Helvetica, Arial, sans-serif">&gt; terminal window left on the screen or not when it's done. &nbsp;</font></div><div><font face="Helvetica, Arial, sans-serif">&gt; However, when it's finished, there should be 4 active terminal&nbsp;</font></div><div><font face="Helvetica, Arial, sans-serif">&gt; windows on the screen mining on 4 separate graphics cards.</font></div><div><font face="Helvetica, Arial, sans-serif"><br></font></div><div><font face="Helvetica, Arial, sans-serif">In kde, you can right-click on the desktop, select "Create new-&gt;Link to application" and then fill in the boxes. I imagine you can do something similar in Gnome.</font></div><div><font face="Helvetica, Arial, sans-serif"><br></font></div><div><font face="Helvetica, Arial, sans-serif"><br></font></div><div><font face="Helvetica, Arial, sans-serif">&gt; Even better, I'd like the windows to automatically size themselves&nbsp;</font></div><div><font face="Helvetica, Arial, sans-serif">&gt; to a certain size and stack up all in a column on the monitor. &nbsp;Better</font></div><div><font face="Helvetica, Arial, sans-serif">&gt; still, would be to have the whole thing auto start when booting.</font></div><div><font face="Helvetica, Arial, sans-serif"><br></font></div><div><font face="Helvetica, Arial, sans-serif">xterm and most X Windows programs accept certain standard options, which you can see by running "man X". In this case you can specify the size and location with "-geometry". So for example:</font></div><div><font face="Helvetica, Arial, sans-serif"><br></font></div><div><font face="Helvetica, Arial, sans-serif">xterm -geometry 80x30+10+10 -e $0 $miner &amp;</font></div><div><font face="Helvetica, Arial, sans-serif"><br></font></div><div><font face="Helvetica, Arial, sans-serif">as the xterm command. You could just specify 4 (or however miner instances you have) separate xterm commands instead of the "for" loop, or you could also do math in the shell based on the miner number. That might be more trouble than it's worth, though.&nbsp;</font></div><div><font face="Helvetica, Arial, sans-serif"><br></font></div><div><font face="Helvetica, Arial, sans-serif">As to starting automatically on boot, you have the issue of needing to be logged in to start the xterms. You'd probably want to send the output to a log file for the actual miner commands, then when you login you could have a command that starts the xterms with "tail -f logfile" instead of actually running the miners directly. In this scenario you'd create an /etc/init.d script to start the actual miner processes. You probably want to see where you can get with the above before jumping into that.</font></div><div><font face="Helvetica, Arial, sans-serif"><br></font></div><div><font face="Helvetica, Arial, sans-serif">&gt; If you can help me with all or part of this puzzle,</font></div><div><font face="Helvetica, Arial, sans-serif">&gt; I'd greatly appreciate it. &nbsp;Thanks in advance.</font></div><div><font face="Helvetica, Arial, sans-serif">&gt;</font></div><div><font face="Helvetica, Arial, sans-serif">&gt; Sincerely,</font></div><div><font face="Helvetica, Arial, sans-serif">&gt;</font></div><div><font face="Helvetica, Arial, sans-serif">&gt; Ron</font></div><div><font face="Helvetica, Arial, sans-serif"><br></font></div><div><font face="Helvetica, Arial, sans-serif">Well, that should get you started anyway. I typed these commands mostly off the top of my head, so there may be some "miner" errors (ha ha). You will find the docs for the if/then/elif/else/fi and case/esac under "man bash". You can man xterm for details on other options. Reply with more specific questions as you get into it, if you need to.</font></div><div><font face="Helvetica, Arial, sans-serif"><br></font></div><div><font face="Helvetica, Arial, sans-serif">Scott</font></div></div><div></div><div><br></div><br><br><div><span name="x"></span>-- <br>Scott Plante, CTO<br>Insight Systems, Inc.<br>(+1) 404 873 0058 x104<br>splante@insightsys.com<br>http://zyross.com<br><br><span name="x"></span><br></div></div></body></html>