当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 12 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 如何用脚本实现启动后关闭?
帖子发表于 : 2010-01-19 19:09 

注册: 2009-05-23 19:26
帖子: 4
送出感谢: 0 次
接收感谢: 0 次
我有一段脚本在ubuntu下试了半天都不行希望大家能帮一下忙,要求其实很简单就是运行gapa.exe后关闭他,但试了很多次后就是不行
引用:
#!/bin/sh
wine gapa.exe
wineserver -k

在win下用DOS批处理很简单
引用:
@echo off
cd 路径
start 程序
taskkill /im 程序
exit

但在ubuntu下就是搞不懂:(


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 如何用脚本实现启动后关闭?
帖子发表于 : 2010-01-19 19:11 
头像

注册: 2007-02-02 18:14
帖子: 30702
系统: debian sid
送出感谢: 1
接收感谢: 34
:em06


_________________
醉了星星,醉月亮●●●●●The Long Way To Go(*^_^*)


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 如何用脚本实现启动后关闭?
帖子发表于 : 2010-01-19 19:15 
头像

注册: 2009-05-20 19:32
帖子: 2462
送出感谢: 0 次
接收感谢: 2
irc <jaua^> say: 退出脚本不是有个exit 0么


_________________
irc 聊天室
ubuntu-cn 的irc 频道为
irc.ubuntu.com 8001 #ubuntu-cn
UTF8编码 可用 irssi xchat pidgin weechat 登录

http://webchat.freenode.net/?channels=ubuntu-cn
irc://irc.freenode.net/ubuntu-cn


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 如何用脚本实现启动后关闭?
帖子发表于 : 2010-01-19 19:43 

注册: 2009-05-23 19:26
帖子: 4
送出感谢: 0 次
接收感谢: 0 次
问题是运行到
wine gapa.exe
这一步后就卡住了,除非手动退出gapa.exe
不然根本就不会执行下一步
wineserver -k来自动关闭


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 如何用脚本实现启动后关闭?
帖子发表于 : 2010-01-19 19:51 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
#!/bin/sh
wine gapa.exe &
wineserver -k


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 如何用脚本实现启动后关闭?
帖子发表于 : 2010-01-19 21:33 

注册: 2009-05-23 19:26
帖子: 4
送出感谢: 0 次
接收感谢: 0 次
BigSnake.NET 写道:
#!/bin/sh
wine gapa.exe &
wineserver -k

试了不过还是不行,因为“&”是一个并列执行的符号,所以“wine gapa.exe"和"wineserver -k"是同时进行的,根本不能用“wineserver -k"来结束gapa.exe,就像下面
引用:
#!/bin/sh
a="test"
a="aaa" &
echo $a
exit 0

输出的是test
引用:
#!/bin/sh
a="test"
a="aaa"
echo $a
exit 0

输出的是aaa


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 如何用脚本实现启动后关闭?
帖子发表于 : 2010-01-20 10:04 
头像

注册: 2007-09-03 18:34
帖子: 273
地址: 羊城通
送出感谢: 0 次
接收感谢: 0 次
你可以 sleep 几秒再 -k 吗。


_________________
    Ubuntu 10.10 ~


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 如何用脚本实现启动后关闭?
帖子发表于 : 2010-01-20 16:16 
头像

注册: 2007-12-25 12:51
帖子: 231
送出感谢: 0 次
接收感谢: 0 次
试试
代码:
wine gapa.exe &
wait $(pidof gapa.exe) && wineserver -k


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 如何用脚本实现启动后关闭?
帖子发表于 : 2010-01-20 18:34 

注册: 2009-05-23 19:26
帖子: 4
送出感谢: 0 次
接收感谢: 0 次
首先感谢yingfei的提醒
yingfei 写道:
你可以 sleep 几秒再 -k 吗。

用sleep后的确成功了
代码:
#!/bin/sh
wine gapa.exe &
sleep 时间
wineserver -k
exit 0

另外关于
c\nc 写道:
试试
代码:
wine gapa.exe &
wait $(pidof gapa.exe) && wineserver -k

试过了不行,不过还是要感谢你的热心帮助!


页首
 用户资料  
 
10 楼 
 文章标题 : Re: 如何用脚本实现启动后关闭?
帖子发表于 : 2010-01-21 1:39 
头像

注册: 2007-12-25 12:51
帖子: 231
送出感谢: 0 次
接收感谢: 0 次
我理解错楼主意图了,我以为是wine不能彻底退出。 :em06


页首
 用户资料  
 
11 楼 
 文章标题 : Re: 如何用脚本实现启动后关闭?
帖子发表于 : 2010-01-21 4:32 

注册: 2008-03-06 4:56
帖子: 82
送出感谢: 0 次
接收感谢: 0 次
6楼的原因是,以&结尾的命令会在一个子shell中运行,修改变量不会互相影响,不是简单的时间问题

不太了解wineserver -k的原理,不过要是通过kill/killall结束程序的话,这问题大概是因为term信号初始的处理方式不是退出(但是文档里写的是。。),必须得等一个程序完全运行起来之后才能修改term的处理方式,然后才能被kill
可以改成用kill信号结束,要是感觉太暴力了可以用hup或者int,经测试也没问题

简单的说就是 xxx & kill $! 不会结束,改成 xxx & kill -hup $! 就可以了
wine的话你可以试试-k1或者-k2或者-k9
用延时的方法毕竟不保险。。万一运行的程序多系统比较慢的话说不定还是会出问题
不过这要求也真怪。。需要运行之后马上关闭的话不如直接判断一下,在这种情况下就不要运行吧


页首
 用户资料  
 
12 楼 
 文章标题 : Re: 如何用脚本实现启动后关闭?
帖子发表于 : 2010-02-23 11:08 
头像

注册: 2008-01-06 16:03
帖子: 68
送出感谢: 0 次
接收感谢: 0 次
试试这个,估计可以
代码:
#!/bin/sh
wine gapa.exe 1>/dev/null 2>/dev/null &
wineserver -k


_________________
我是一只小菜鸟呀,咿呀咿呀呦~~~~~~~~~~


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 12 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译