我需要启动和停止带有自动变速器的小型服务器,但我的知识非常有限。我无法设置文件的路径,我不知道如何停止服务器。
到目前为止,我有这个:
运行
set r to display dialog "Start or stop the NINJAM server ?" buttons {"Stop", "Start"}
if button returned of r is "Start" then
#tell application "Terminal"
# activate
do shell script "cd \"/Applications/ MUSIC/ Utilities/Audio IP/NINJAM/NINJAM/NinjamOSXServer ./ninjamsrv Server.cfg\""
#end tell
else
do shell script "Stop"
end if
结束
任何帮助都是真正的。提前谢谢。
答案 0 :(得分:0)
注意我在这里使用自己的路径 - 我将ninjam服务器文件夹放在Applications文件夹的顶层。 我不得不创建一个'term'文件,这是一个包含它的文本文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>WindowSettings</key>
<array>
<dict>
<key>ExecutionString</key>
<string>cd /Applications/NinjamOSXServer/;./ninjamsrv config.cfg</string>
</dict>
</array>
</dict>
</plist>
我将其保存为LaunchNinjamSrvr.term并将其放在与ninjamsrvr相同的文件夹中。然后使用的脚本是:
set r to display dialog "Start or stop the NINJAM server ?" buttons {"Stop", "Start"}
if button returned of r is "Start" then
do shell script "open /Applications/NinjamOSXServer/LaunchNinjamSrvr.term"
else
do shell script "killall -INT -v ninjamsrv"
end if
[发生在我身上,我应该给出一些解释。直接使用带有“config.cfg”参数的完整路径会使'do shell script'阻塞。分割成两个命令(但仍然使用do shell脚本),就像在.term文件中看到的那样,可以启动ninjamsrv,但会使脚本编辑器(我使用Smile)冻结。所以(大概 - 我不想通过其他方式[脚本应用程序等]测试它)一个问题,以及为什么我使用.term文件。以前你可以从终端的File菜单(我记得)直接保存一个.term文件,但这似乎已经落在了路边。所以,在这一点上,我使用了一个模板,只需将命令粘贴到相应的行中即可。 (但请参阅http://discussions.apple.com/thread/3139585?start=0&tstart=0 - 其中解释了导出终端首选项文件的技术)。我有点懒,新形式是.terminal,而不是.term ......无论如何...... 所以剩下的就是做实际的AS脚本了。 'open'是一个基本的命令行命令,就像在Finder中打开或双击一样。如果由于某种原因您的文件在错误的应用程序中打开或未打开,您可能需要将其映射到Terminal.app(在获取信息窗口中)和/或将扩展名更改为更新的更新'。终奌站'。 killall就像杀人,旨在以各种方式杀死进程。我选择了-INT,因为这基本上就像做一个control-c来中断进程。]