2006年12月22日 星期五 18:17
----- Original Message ----- From: <python-chinese-request在lists.python.cn> To: <python-chinese在lists.python.cn> Sent: Friday, December 22, 2006 1:54 PM Subject: python-chinese 摘要, 卷 36, 发布 119 > 想在 python-chinese 邮件列表发言,请写信给: > python-chinese在lists.python.cn > > 要订阅或者退订列表,可以访问万维网地址: > http://python.cn/mailman/listinfo/python-chinese > 或者可以向: > python-chinese-request在lists.python.cn > 发送主题或者正文为'help'的邮件。 > > 您可以通过邮件地址: > python-chinese-owner在lists.python.cn > 联系到此列表的管理员。 > > 当回信时,请给一个适当的标题,这样会比 "Re: > Contents of python-chinese digest..."更清楚明白。 > > > 本日主题: > > 1. Re: python > 如何判断一个程序已经启动过一次了? > (使用Py2Exe生成Exe后在windows中运行) (IQDoctor) > 2. Re: python > 如何判断一个程序已经启动过一次了? > (使用Py2Exe生成Exe后在windows中运行) (limodou) > 3. Re: python > 如何判断一个程序已经启动过一次了? > (使用Py2Exe生成Exe后在windows中运行) (shhgs) > 4. > 大家好,请教一个问题,生成一个按纽问题和有关粘贴板的操作! > (email在gzemail.cn) > 5. Re: python > 如何判断一个程序已经启动过一次了? > (使用Py2Exe生成Exe后在windows中运行) (IQDoctor) > 6. Re: python > 如何判断一个程序已经启动过一次了? > (使用Py2Exe生成Exe后在windows中运行) (IQDoctor) > 7. Re: python > 如何判断一个程序已经启动过一次了? > (使用Py2Exe生成Exe后在windows中运行) (shhgs) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Fri, 22 Dec 2006 13:17:17 +0800 > From: IQDoctor <huanghao.c在gmail.com> > Subject: Re: [python-chinese] python > 如何判断一个程序已经启动过一次了? > (使用Py2Exe生成Exe后在windows中运行) > To: python-chinese在lists.python.cn > Message-ID: <458B6A5D.1010203在gmail.com> > Content-Type: text/plain; charset=UTF-8; format=flowed > > socket 一样可以被终止掉的. > > 只要想破坏的人具有 ROOT 身份, 你在系统里做的任何 "记号" 都不是万 > 无一失的(包括 SOCKET) > > 另外, 还有一种幄挫办法是取进程列表, 然后比较, 这个办法好处是 > 连 ROOT 都无法作假. > > shhgs 写道: >> PID的办法并不是万无一失的。 >> >> 第一,如果有人把你的PID文件删了,该怎么办? >> >> 第二,如果你的程序意外退出了,且退出的时候,没有删PID文件,该怎么办? >> >> 这个问题看上去简单,但真的要做好却很难。 >> >> On 12/21/06, IQDoctor <huanghao.c在gmail.com> wrote: >> >>> 第一次运行, 将 PID 写进文件, 例如: /var/run/yourprog.pid >>> 下次运行时检查该文件, 如果正在运行中就 exit.. >>> >>> ray zhenlin 写道: >>> >>>> 最近使用Python写了个程序,但需要防止这个程序被同时运行2次,请问有什么 >>>> 办法来检查? >>>> ------------------------------------------------------------------------ >>>> >>>> _______________________________________________ >>>> python-chinese >>>> Post: send python-chinese在lists.python.cn >>>> Subscribe: send subscribe to python-chinese-request在lists.python.cn >>>> Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn >>>> Detail Info: http://python.cn/mailman/listinfo/python-chinese >>>> >>> _______________________________________________ >>> python-chinese >>> Post: send python-chinese在lists.python.cn >>> Subscribe: send subscribe to python-chinese-request在lists.python.cn >>> Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn >>> Detail Info: http://python.cn/mailman/listinfo/python-chinese >>> >> _______________________________________________ >> python-chinese >> Post: send python-chinese在lists.python.cn >> Subscribe: send subscribe to python-chinese-request在lists.python.cn >> Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn >> Detail Info: http://python.cn/mailman/listinfo/python-chinese > > > > ------------------------------ > > Message: 2 > Date: Fri, 22 Dec 2006 13:22:14 +0800 > From: limodou <limodou在gmail.com> > Subject: Re: [python-chinese] python > 如何判断一个程序已经启动过一次了? > (使用Py2Exe生成Exe后在windows中运行) > To: python-chinese在lists.python.cn > Message-ID: > <505f13c0612212122q735a8559r250455fdc61ec708在mail.gmail.com> > Content-Type: text/plain; charset=GB2312; format=flowed > > On 12/22/06, ray zhenlin <ray1.cn在gmail.com> wrote: >> 我在win上是这样实现的,有效果 >> >> import win32event >> import win32api >> import winerror >> >> # 判断是否有实例运行,有,退出 >> mutex = None >> mutex = win32event.CreateMutex(None, 1, title) >> if win32api.GetLastError() == winerror.ERROR_ALREADY_EXISTS: >> dlg= wx.MessageDialog(None, title + "正在运行中...",'警告',wx.OK | >> wx.ICON_ERROR ) >> dlg.ShowModal() >> dlg.Destroy() >> return >> >> 谢谢大家给的建议 >> > 看到你使用wx,其实wx有一个wx.SingleInstanceChecker的方法可以使用 > > -- > I like python! > UliPad <>: http://wiki.woodpecker.org.cn/moin/UliPad > My Blog: http://www.donews.net/limodou > > ------------------------------ > > Message: 3 > Date: Fri, 22 Dec 2006 00:25:00 -0500 > From: shhgs <shhgs.efhilt在gmail.com> > Subject: Re: [python-chinese] python > 如何判断一个程序已经启动过一次了? > (使用Py2Exe生成Exe后在windows中运行) > To: python-chinese在lists.python.cn > Message-ID: > <32b590a0612212125u5508b09fwa6e749364ff705c8在mail.gmail.com> > Content-Type: text/plain; charset=UTF-8; format=flowed > > 一般情况下,PID是标准做法。但是要做到万无一失,确实很难。 > > 读进程表没有办法保证racing。 > > 进程一读进程表,发现没有进程,但是在它读完进程表之后,启动进程之前,进程二插了进来。请问这个怎么解决? > > > > On 12/22/06, IQDoctor <huanghao.c在gmail.com> wrote: >> socket 一样可以被终止掉的. >> >> 只要想破坏的人具有 ROOT 身份, 你在系统里做的任何 "记号" 都不是万 >> 无一失的(包括 SOCKET) >> >> 另外, 还有一种幄挫办法是取进程列表, 然后比较, 这个办法好处是 >> 连 ROOT 都无法作假. >> >> shhgs 写道: >> > PID的办法并不是万无一失的。 >> > >> > 第一,如果有人把你的PID文件删了,该怎么办? >> > >> > 第二,如果你的程序意外退出了,且退出的时候,没有删PID文件,该怎么办? >> > >> > 这个问题看上去简单,但真的要做好却很难。 >> > >> > On 12/21/06, IQDoctor <huanghao.c在gmail.com> wrote: >> > >> >> 第一次运行, 将 PID 写进文件, 例如: /var/run/yourprog.pid >> >> 下次运行时检查该文件, 如果正在运行中就 exit.. >> >> >> >> ray zhenlin 写道: >> >> >> >>> 最近使用Python写了个程序,但需要防止这个程序被同时运行2次,请问有什么 >> >>> 办法来检查? >> >>> ------------------------------------------------------------------------ >> >>> >> >>> _______________________________________________ >> >>> python-chinese >> >>> Post: send python-chinese在lists.python.cn >> >>> Subscribe: send subscribe to python-chinese-request在lists.python.cn >> >>> Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn >> >>> Detail Info: http://python.cn/mailman/listinfo/python-chinese >> >>> >> >> _______________________________________________ >> >> python-chinese >> >> Post: send python-chinese在lists.python.cn >> >> Subscribe: send subscribe to python-chinese-request在lists.python.cn >> >> Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn >> >> Detail Info: http://python.cn/mailman/listinfo/python-chinese >> >> >> > _______________________________________________ >> > python-chinese >> > Post: send python-chinese在lists.python.cn >> > Subscribe: send subscribe to python-chinese-request在lists.python.cn >> > Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn >> > Detail Info: http://python.cn/mailman/listinfo/python-chinese >> >> _______________________________________________ >> python-chinese >> Post: send python-chinese在lists.python.cn >> Subscribe: send subscribe to python-chinese-request在lists.python.cn >> Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn >> Detail Info: http://python.cn/mailman/listinfo/python-chinese > > ------------------------------ > > Message: 4 > Date: Fri, 22 Dec 2006 13:45:29 +0800 (CST) > From: email在gzemail.cn > Subject: [python-chinese] > 大家好,请教一个问题,生成一个按纽问题和有关粘贴板的操作! > > To: python-chinese在lists.python.cn > Message-ID: <AB938777865470.18069在MAIL5> > Content-Type: text/plain; charset="gb2312" > > 大家好,我做了一个检测网络延时的小脚本,想把检测的结果的标题复制进粘贴板或者用python生成一个按纽,点击这个按纽就复制了标题,python可以做到吗? > > ---------------------------------------------- > 欢迎使用广州市市民电子邮局 http://www.gzemail.cn > > > > > ------------------------------ > > Message: 5 > Date: Fri, 22 Dec 2006 13:50:00 +0800 > From: IQDoctor <huanghao.c在gmail.com> > Subject: Re: [python-chinese] python > 如何判断一个程序已经启动过一次了? > (使用Py2Exe生成Exe后在windows中运行) > To: python-chinese在lists.python.cn > Message-ID: <458B7208.20909在gmail.com> > Content-Type: text/plain; charset=UTF-8; format=flowed > > shhgs 写道: >> 一般情况下,PID是标准做法。但是要做到万无一失,确实很难。 >> >> 读进程表没有办法保证racing。 >> >> 进程一读进程表,发现没有进程,但是在它读完进程表之后,启动进程之前,进程二插了进来。请问这个怎么解决? >> > 嗯, 读进程表确实也不完美. > > PID 方法还是最好的. PID 方法的问题是担心有人会删了 PID 文件, 只要解决这 > 个问题就可以了. > > 默认的 umask 是不允许非 owner 和 ROOT 以外的人删除你的 PID 的. > 那么有两种可能你的 PID 被删除: > 1. 你进程本身无故删除 PID, 那就是 BUG 了 > 2. ROOT无故删除你的 PID 文件, 这种情况不大需要考虑吧, 那通常是 ROOT 有病. > > 如果你的进程永远是作为 ROOT 跑的, 那就简单了, 为了担心 ROOT 误删除 PID > 文件, 可以在建立 > PID 文件时候, 立即 chattr +i prog.pid, 这样 ROOT 误操作都删除不掉 > prog.pid 了. >> >> >> >> On 12/22/06, IQDoctor <huanghao.c在gmail.com> wrote: >> >>> socket 一样可以被终止掉的. >>> >>> 只要想破坏的人具有 ROOT 身份, 你在系统里做的任何 "记号" 都不是万 >>> 无一失的(包括 SOCKET) >>> >>> 另外, 还有一种幄挫办法是取进程列表, 然后比较, 这个办法好处是 >>> 连 ROOT 都无法作假. >>> >>> shhgs 写道: >>> >>>> PID的办法并不是万无一失的。 >>>> >>>> 第一,如果有人把你的PID文件删了,该怎么办? >>>> >>>> 第二,如果你的程序意外退出了,且退出的时候,没有删PID文件,该怎么办? >>>> >>>> 这个问题看上去简单,但真的要做好却很难。 >>>> >>>> On 12/21/06, IQDoctor <huanghao.c在gmail.com> wrote: >>>> >>>> >>>>> 第一次运行, 将 PID 写进文件, 例如: /var/run/yourprog.pid >>>>> 下次运行时检查该文件, 如果正在运行中就 exit.. >>>>> >>>>> ray zhenlin 写道: >>>>> >>>>> >>>>>> 最近使用Python写了个程序,但需要防止这个程序被同时运行2次,请问有什么 >>>>>> 办法来检查? >>>>>> ------------------------------------------------------------------------ >>>>>> >>>>>> _______________________________________________ >>>>>> python-chinese >>>>>> Post: send python-chinese在lists.python.cn >>>>>> Subscribe: send subscribe to python-chinese-request在lists.python.cn >>>>>> Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn >>>>>> Detail Info: http://python.cn/mailman/listinfo/python-chinese >>>>>> >>>>>> >>>>> _______________________________________________ >>>>> python-chinese >>>>> Post: send python-chinese在lists.python.cn >>>>> Subscribe: send subscribe to python-chinese-request在lists.python.cn >>>>> Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn >>>>> Detail Info: http://python.cn/mailman/listinfo/python-chinese >>>>> >>>>> >>>> _______________________________________________ >>>> python-chinese >>>> Post: send python-chinese在lists.python.cn >>>> Subscribe: send subscribe to python-chinese-request在lists.python.cn >>>> Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn >>>> Detail Info: http://python.cn/mailman/listinfo/python-chinese >>>> >>> _______________________________________________ >>> python-chinese >>> Post: send python-chinese在lists.python.cn >>> Subscribe: send subscribe to python-chinese-request在lists.python.cn >>> Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn >>> Detail Info: http://python.cn/mailman/listinfo/python-chinese >>> >> _______________________________________________ >> python-chinese >> Post: send python-chinese在lists.python.cn >> Subscribe: send subscribe to python-chinese-request在lists.python.cn >> Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn >> Detail Info: http://python.cn/mailman/listinfo/python-chinese > > > > ------------------------------ > > Message: 6 > Date: Fri, 22 Dec 2006 13:50:31 +0800 > From: IQDoctor <huanghao.c在gmail.com> > Subject: Re: [python-chinese] python > 如何判断一个程序已经启动过一次了? > (使用Py2Exe生成Exe后在windows中运行) > To: python-chinese在lists.python.cn > Message-ID: <458B7227.4070104在gmail.com> > Content-Type: text/plain; charset=UTF-8; format=flowed > > shhgs 写道: >> 一般情况下,PID是标准做法。但是要做到万无一失,确实很难。 >> >> 读进程表没有办法保证racing。 >> >> 进程一读进程表,发现没有进程,但是在它读完进程表之后,启动进程之前,进程二插了进来。请问这个怎么解决? >> > 嗯, 读进程表确实也不完美. > > PID 方法还是最好的. PID 方法的问题是担心有人会删了 PID 文件, 只要解决这 > 个问题就可以了. > > 默认的 umask 是不允许非 owner 和 ROOT 以外的人删除你的 PID 文件的. > 那么有两种可能你的 PID 被删除: > 1. 你进程本身无故删除 PID, 那就是 BUG 了 > 2. ROOT无故删除你的 PID 文件, 这种情况不大需要考虑吧, 那通常是 ROOT 有病. > > 如果你的进程永远是作为 ROOT 跑的, 那就简单了, 为了担心 ROOT 误删除 PID > 文件, 可以在建立 > PID 文件时候, 立即 chattr +i prog.pid, 这样 ROOT 误操作都删除不掉 > prog.pid 了. >> >> >> >> On 12/22/06, IQDoctor <huanghao.c在gmail.com> wrote: >> >>> socket 一样可以被终止掉的. >>> >>> 只要想破坏的人具有 ROOT 身份, 你在系统里做的任何 "记号" 都不是万 >>> 无一失的(包括 SOCKET) >>> >>> 另外, 还有一种幄挫办法是取进程列表, 然后比较, 这个办法好处是 >>> 连 ROOT 都无法作假. >>> >>> shhgs 写道: >>> >>>> PID的办法并不是万无一失的。 >>>> >>>> 第一,如果有人把你的PID文件删了,该怎么办? >>>> >>>> 第二,如果你的程序意外退出了,且退出的时候,没有删PID文件,该怎么办? >>>> >>>> 这个问题看上去简单,但真的要做好却很难。 >>>> >>>> On 12/21/06, IQDoctor <huanghao.c在gmail.com> wrote: >>>> >>>> >>>>> 第一次运行, 将 PID 写进文件, 例如: /var/run/yourprog.pid >>>>> 下次运行时检查该文件, 如果正在运行中就 exit.. >>>>> >>>>> ray zhenlin 写道: >>>>> >>>>> >>>>>> 最近使用Python写了个程序,但需要防止这个程序被同时运行2次,请问有什么 >>>>>> 办法来检查? >>>>>> ------------------------------------------------------------------------ >>>>>> >>>>>> _______________________________________________ >>>>>> python-chinese >>>>>> Post: send python-chinese在lists.python.cn >>>>>> Subscribe: send subscribe to python-chinese-request在lists.python.cn >>>>>> Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn >>>>>> Detail Info: http://python.cn/mailman/listinfo/python-chinese >>>>>> >>>>>> >>>>> _______________________________________________ >>>>> python-chinese >>>>> Post: send python-chinese在lists.python.cn >>>>> Subscribe: send subscribe to python-chinese-request在lists.python.cn >>>>> Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn >>>>> Detail Info: http://python.cn/mailman/listinfo/python-chinese >>>>> >>>>> >>>> _______________________________________________ >>>> python-chinese >>>> Post: send python-chinese在lists.python.cn >>>> Subscribe: send subscribe to python-chinese-request在lists.python.cn >>>> Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn >>>> Detail Info: http://python.cn/mailman/listinfo/python-chinese >>>> >>> _______________________________________________ >>> python-chinese >>> Post: send python-chinese在lists.python.cn >>> Subscribe: send subscribe to python-chinese-request在lists.python.cn >>> Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn >>> Detail Info: http://python.cn/mailman/listinfo/python-chinese >>> >> _______________________________________________ >> python-chinese >> Post: send python-chinese在lists.python.cn >> Subscribe: send subscribe to python-chinese-request在lists.python.cn >> Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn >> Detail Info: http://python.cn/mailman/listinfo/python-chinese > > > > ------------------------------ > > Message: 7 > Date: Fri, 22 Dec 2006 00:52:47 -0500 > From: shhgs <shhgs.efhilt在gmail.com> > Subject: Re: [python-chinese] python > 如何判断一个程序已经启动过一次了? > (使用Py2Exe生成Exe后在windows中运行) > To: python-chinese在lists.python.cn > Message-ID: > <32b590a0612212152g7e5d85adqa31da058a61f222d在mail.gmail.com> > Content-Type: text/plain; charset=UTF-8; format=flowed > > pid的麻烦在于,程序如果不正常退出,没有删掉PID文件,那该怎么办。 > > On 12/22/06, IQDoctor <huanghao.c在gmail.com> wrote: >> shhgs 写道: >> > 一般情况下,PID是标准做法。但是要做到万无一失,确实很难。 >> > >> > 读进程表没有办法保证racing。 >> > >> > 进程一读进程表,发现没有进程,但是在它读完进程表之后,启动进程之前,进程二插了进来。请问这个怎么解决? >> > >> 嗯, 读进程表确实也不完美. >> >> PID 方法还是最好的. PID 方法的问题是担心有人会删了 PID 文件, 只要解决这 >> 个问题就可以了. >> >> 默认的 umask 是不允许非 owner 和 ROOT 以外的人删除你的 PID 的. >> 那么有两种可能你的 PID 被删除: >> 1. 你进程本身无故删除 PID, 那就是 BUG 了 >> 2. ROOT无故删除你的 PID 文件, 这种情况不大需要考虑吧, 那通常是 ROOT 有病. >> >> 如果你的进程永远是作为 ROOT 跑的, 那就简单了, 为了担心 ROOT 误删除 PID >> 文件, 可以在建立 >> PID 文件时候, 立即 chattr +i prog.pid, 这样 ROOT 误操作都删除不掉 >> prog.pid 了. >> > >> > >> > >> > On 12/22/06, IQDoctor <huanghao.c在gmail.com> wrote: >> > >> >> socket 一样可以被终止掉的. >> >> >> >> 只要想破坏的人具有 ROOT 身份, 你在系统里做的任何 "记号" 都不是万 >> >> 无一失的(包括 SOCKET) >> >> >> >> 另外, 还有一种幄挫办法是取进程列表, 然后比较, 这个办法好处是 >> >> 连 ROOT 都无法作假. >> >> >> >> shhgs 写道: >> >> >> >>> PID的办法并不是万无一失的。 >> >>> >> >>> 第一,如果有人把你的PID文件删了,该怎么办? >> >>> >> >>> 第二,如果你的程序意外退出了,且退出的时候,没有删PID文件,该怎么办? >> >>> >> >>> 这个问题看上去简单,但真的要做好却很难。 >> >>> >> >>> On 12/21/06, IQDoctor <huanghao.c在gmail.com> wrote: >> >>> >> >>> >> >>>> 第一次运行, 将 PID 写进文件, 例如: /var/run/yourprog.pid >> >>>> 下次运行时检查该文件, 如果正在运行中就 exit.. >> >>>> >> >>>> ray zhenlin 写道: >> >>>> >> >>>> >> >>>>> 最近使用Python写了个程序,但需要防止这个程序被同时运行2次,请问有什么 >> >>>>> 办法来检查? >> >>>>> ------------------------------------------------------------------------ >> >>>>> >> >>>>> _______________________________________________ >> >>>>> python-chinese >> >>>>> Post: send python-chinese在lists.python.cn >> >>>>> Subscribe: send subscribe to python-chinese-request在lists.python.cn >> >>>>> Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn >> >>>>> Detail Info: http://python.cn/mailman/listinfo/python-chinese >> >>>>> >> >>>>> >> >>>> _______________________________________________ >> >>>> python-chinese >> >>>> Post: send python-chinese在lists.python.cn >> >>>> Subscribe: send subscribe to python-chinese-request在lists.python.cn >> >>>> Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn >> >>>> Detail Info: http://python.cn/mailman/listinfo/python-chinese >> >>>> >> >>>> >> >>> _______________________________________________ >> >>> python-chinese >> >>> Post: send python-chinese在lists.python.cn >> >>> Subscribe: send subscribe to python-chinese-request在lists.python.cn >> >>> Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn >> >>> Detail Info: http://python.cn/mailman/listinfo/python-chinese >> >>> >> >> _______________________________________________ >> >> python-chinese >> >> Post: send python-chinese在lists.python.cn >> >> Subscribe: send subscribe to python-chinese-request在lists.python.cn >> >> Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn >> >> Detail Info: http://python.cn/mailman/listinfo/python-chinese >> >> >> > _______________________________________________ >> > python-chinese >> > Post: send python-chinese在lists.python.cn >> > Subscribe: send subscribe to python-chinese-request在lists.python.cn >> > Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn >> > Detail Info: http://python.cn/mailman/listinfo/python-chinese >> >> _______________________________________________ >> python-chinese >> Post: send python-chinese在lists.python.cn >> Subscribe: send subscribe to python-chinese-request在lists.python.cn >> Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn >> Detail Info: http://python.cn/mailman/listinfo/python-chinese > > ------------------------------ > > _______________________________________________ > python-chinese mailing list > python-chinese在lists.python.cn > http://python.cn/mailman/listinfo/python-chinese > > 结束python-chinese 摘要, 卷 36, 发布 119 > *********************************************** >可以创建一个window的命名内核对象,比如互斥对象
Zeuux © 2025
京ICP备05028076号