精华内容
下载资源
问答
  • mina作为服务器,断网断电的处理。

    千次阅读 2015-01-28 17:17:46
    一开始,我以为断网和端电的话会调用session.close()方法,结果它没有,因为客户端没事断网断电的情况实在太容易发生,而mina框架而没有那个方法去处理这个事件,于是服务端对客户端那个已经断网或断电的session...

    最近做了个项目,客户端通信就是使用mina作为服务器,这篇文章不具体介绍mina的是什么,怎么用,哪些属于刚入门的问题,而且这些在网上有很多资料,


    一开始,我以为断网和端电的话会调用session.close()方法,结果它没有,因为客户端没事断网断电的情况实在太容易发生了,而mina框架而没有那个方法去处理这个事件,于是服务端对客户端那个已经断网或断电的session一直保持着在那,这样很容易导致下面的这个问题:

    session没有被关闭,在Linux系统下他相对于一个文件,当这种session在1个月达到一定的量的时候,会报错:“打开的文件数过多!”这个错,

    所以我们需要处理这个session,使他关闭,而且对于已经投产的项目,能不要求客户端改,尽量所有的操作和改动都在服务端完成。


    下面我上传一个做好的例子。


    请到我的资源处免费下载!

    展开全文
  • xshell中途断网——tmux解决方法

    千次阅读 2018-10-19 08:49:24
    $ tmux1 ...其实刚才我们启动 tmux 之后,它已经自动创建一个会话(Session),会话是 tmux 的最主要的功能,接下来我们将介绍会话的一些功能。 新建会话 启动 tmux 会自动创建会话,但并没...

     

    $ tmux1

    启动之后,可以看到命令行最底部多了一条绿色的状态条,上面显示了一些信息,比如计算机名和时间等。 要退出 tmux,可以输入 exit 回车或者按下组合键 [Ctrl+d] 。

    其实刚才我们启动 tmux 之后,它已经自动创建了一个会话(Session),会话是 tmux 的最主要的功能,接下来我们将介绍会话的一些功能。

    新建会话

    启动 tmux 会自动创建会话,但并没有为会话命名。为了以后使用方便,我们来创建一个自己命名的会话,命令如下:

     

    $ tmux new-session -s <会话名称>1

    现在我们来创建一个会话,取名为 dev ,命令为:

    $ tmux new-session -s dev1

    创建完成之后,可以看到底部状态条左边标示出了当前的会话名为 dev 。

     

    这个命令还有一个缩写版本, new-session 缩写成 new ,也就是上述命令可以简写成:

    $ tmux new -s dev1

     

    新建会话还可以带上一个初始命令:

     

    $ tmux new -s <会话名称> 初始命令1

    比如创建一个名为 monitor 的会话,初始命令为 top :

     

    $ tmux new -s monitor top1

    可以看到会话创建后,会自动运行 top 命令。但是一旦退出 top 程序 (按 [q] ),会话也会自动退出,所以在实际应用中,初始命令几乎不会用到。

     

    分离会话(detach)

    之前已经说过,退出 tmux 可以使用 exit 命令或者 [Ctrl+d] 组合键,退出 tmux 会把会话结束掉,就像平常关闭终端程序一样。但是在实际应用中,可能你并不希望这样,因为有些程序是要保持运行的,例如 rails 的测试服务、telnet连接远程服务器等等。

    这时候分离会话就可以派上用场了,分离后的会话并不会把运行中的程序结束掉,而是会保持运行,你还可以稍后重新连接上这些会话。

    分离会话之前,我们先来启动一个需要保持运行的程序,这里用 python 2.x 的 SimpleHTTPServer 为例, 当然你也可以选择启动 rails 或 django 的测试服务、telnet 连接或者更简单的 top 命令。

    先在之前创建的会话中运行一下命令来启动一个简单的 HTTP 服务:

     

    $ python -m SimpleHTTPServer
    Serving HTTP on 0.0.0.0 port 8000 ...12

    这时候 HTTP 服务已经运行起来了,接下来就要做分离会话的操作了,快捷键是:

    [Ctrl+b] [d]

    也就是先按下组合键 [Ctrl+b] 然后再接着按 [d] 。d 代表了 detach,而 [Ctrl+b] 是一个命令前缀(官方称之为 prefix),这个命令前缀是告诉终端程序,接下来的命令是针对 tmux 使用的。在之后的描述中,都将采用 [前缀] 来代替 tmux 的命令前缀。

    可以看到,在按下快捷键之后,tmux 已经退出并回到平常的终端中,并带着 [detached] 字样的提示。

    这时候可以在浏览器访问一下刚才启动的 HTTP 服务 http://localhost:8000,确实可以正常访问,证明刚才的程序还在保持运行中,并没有被结束,甚至你还可以把整个终端程序关闭。

    可能有人会很不习惯这个默认的命令前缀,包括我自己在内,因为 [Ctrl+b] 是一个 Emacs 或 Vim 的快捷键,甚至是命令行本身的快捷键。在 Emacs 或者命令行中,它是后退一个字符的操作;而在 Vim 中,它是一个向上翻页的操作。不过不用担心,先忍耐忍耐,稍后的章节将讲述如何配置 tmux,那时就可以摆脱快捷键冲突的困扰了。

     

    连接会话(attach)

    被分离的会话,还可以重新连接上,就让我们来实践一下,命令为:

     

    $ tmux attach-session -t <目标会话名>1

    简写为

     

    $ tmux attach -t <目标会话名>1

     

    $ tmux a -t <目标会话名>1

    之前我们创建的会话名叫 dev ,所以命令就可以这样写:

     

    $ tmux a -t dev1

    因为我们只创建了一个会话,所以可以忽略 -t 的参数,直接写成:

     

    $ tmux a1

    如果不指定目标会话名,tmux 将会连接你上次使用的会话。连接上 dev 会话之后,可以看到程序还在运行中,而且终端里显示的内容跟会话分离前没什么两样,只是多了几行 HTTP 请求的日志。

    这时候,你还可以在多个终端,甚至是多台电脑通过 ssh 连接上同一个会话,可以实现共同操作,非常强大,具体的感受可以自己体会。

    接下来我们多创建几个 tmux 会话,在这之前先把当前会话分离掉:

    分离当前会话: [前缀] d 
    新建一个名为 edit 的会话: tmuxnew−sedit分离edit会话:[前缀]d新建一个名为telnet的会话:tmuxnew−sedit分离edit会话:[前缀]d新建一个名为telnet的会话: tmux new -s telnet 
    分离 telnet 会话: [前缀] d

     

    ls会话

    现在,会话已经足够多了,接下来登场的就是列出所有会话的命令:

     

    $ tmux list-sessions1

    可以简写成

     

    $ tmux ls1

    屏幕上将会显示出所有创建的会话,比如:

    dev: 1 windows (created Tue Jun 10 15:10:32 2014) [80x24] 
    edit: 1 windows (created Tue Jun 10 16:26:20 2014) [80x24] 
    telnet: 1 windows (created Tue Jun 10 16:26:53 2014) [80x24] 
    这时候连接会话的 -t 参数就派上用场了,你可以选择连接到哪一个会话。

    如果没有创建会话或者会话都全已退出,那么列出所有会话的命令将会提示一个 failed to connect to server 的信息,可以看得出来 tmux 是有运行一个服务的,这个服务管理着所有的会话,并让他们持续运行。

    展开全文
  • 断网联网多次出现下载失败之后,重启APP再次进入下载列表界面闪退 <p><strong>错误或者奔溃信息</strong><br /> Attempted to create a task in a session that has been invalidated Trapped uncaught ...
  • ubuntu 自带有VNC SERVER,但是用这么久发现VNC随便玩玩还...另外,远程管理必须要考虑一些不稳定因素,比如偶然断网等,这种情况发生时VNC无法及时注销前面的session会造成管理员但时间内无法登陆服务器。在网上...

    ubuntu 自带有VNC SERVER,但是用了这么久发现VNC随便玩玩还可以,但并不适合服务器远程管理。VNC只允许创建一个session,无论是远程还是本地,只允许一个登陆用户存在。很多情况下不止一个用户需要登录服务器,VNC无法解决这个问题。另外,远程管理必须要考虑一些不稳定因素,比如偶然断网等,这种情况发生时VNC无法及时注销前面的session会造成管理员但时间内无法登陆服务器。

    在网上GOOLE了一下,发现freeNX,可以很好的解决远程连接ubuntu 桌面!!这个软件是通过SSH 的协议来连接服务器的,所以就可以支持多session管理了,同时他又是图形界面,简单易用。

    安装NX Free Edition for Linux 方法:

    linux服务器配置完成,配置windows下client端,安装客户端软件windows to linux,下载地址http://www.nomachine.com/download-package.php?Prod_Id=65 windows下配置连接,session项随机起名字,host是ubuntu主机,端口默认22不变,网络连接模式按情况选择,下一步后选择Unix-GNOM,然后设定以下预期的分辨率,一直默认下一步就配置好了。运行客户端NX Client for Windows输入ubuntu用户的用户名和密码就可以登录了,ubuntu的桌面分辨率最好设置为1024×736,这样可以保证工具栏能完全显示。

    3cabbc89080456527bc1c75d908fc4af.png

    客户端如果是linux下的话,下载NX client for linux,安装后,设置命令:   /usr/NX/bin/xclient &    (设置nx客户端,linux 与windows一样的设置界面)

    测试过了,NX可以方便的实现多session登录,登出时可以通过ubuntu系统的登出,也可以直接关闭NX窗口,关闭时会提示是否要保留session,一般选择terminate关闭session即可。同时NX提供了一个NX Session Administrator管理器,可以管理当前登录到服务器上的所有session。

    sudo /usr/NX/bin/nxserver --status(查看是否运行,如果没有运行,请用 --start 参数启动它)

    NX> 900 Connecting to server ..

    NX> 110 NX Server is running.

    展开全文
  • 但是用户如果没有点击退出按钮,而是直接关闭浏览器,或者断网,或者断电直接关闭计算机等情况下,在服务器端保存的 Session 文件是不会被删除的。虽然关闭浏览器,下次需要分配一个新的 Session ID 重新登录,但...

    一般情况下,可以通过在页面提供的一个“退出” 按钮,单击来销毁本次会话。但是用户如果没有点击退出按钮,而是直接关闭浏览器,或者断网,或者断电直接关闭计算机等情况下,在服务器端保存的 Session 文件是不会被删除的。虽然关闭了浏览器,下次需要分配一个新的 Session ID 重新登录,但这只是因为在 php.ini 中的设置 session.cookie_lifetime = 0, 来设定 Session ID 在客户端 Cookie 中的有效期限,以秒为单位指定了发送到浏览器的 Cookie 的生命周期。值为0 表示 “直到关闭浏览器”,默认为 0.
    当系统赋予 Session 有效期限后,不管浏览器是否开启,Session ID 都会自动消失。而客户端的 Session ID 消失,服务端保存的 Session 文件并没有被删除。所以没有被 Session ID 引用 的服务器端 Session 文件,就成为 “ 垃圾 ”。 为了防止这些垃圾 Session 文件对系统造成过大的负荷(因为 Session 并不像 Cookie 是一种半永久性的存在), 对于永远也用不上的 Session 文件(垃圾文件),系统有自动清理的机制。

    服务端保存的 Session 文件 就是一个普通的文本文件,所以都会有文件的修改时间。“ 垃圾回收程序 ” 启动后就是根据 Session 文件的修改时间 ,将过期的 Session 文件全都给删除了。

    “ 垃圾回收程序 ” 是什么样的启动机制呢?

    “ 垃圾回收程序 ” 是在调用 session_start()函数时启动的。 而一个网站有多个脚本,每个脚本又都要使用 session_start()函数开启会话,又会有很多个用户同时访问,这就很有可能使得 session_start()函数在 1秒内被调用了 N 次,而如果每次都会启动 “ 垃圾回收程序 ” ,这样就很不合理了。即使最少控制在 15分钟以上启动一次 “ 垃圾回收程序 ” ,一天也要清理 100多次,这样太频繁了。 通过在 php.ini 文件中修改 session.gc_probability 和 session.gc_divisor 两个选项,设置启动垃圾回收程序的概率。系统会根据session.gc_probability/session.gc_divisor 公式计算概率,例如选项 session.gc_probability = 1,选项 session.gc_divisor = 100,这样概率就变成了 1/100,也就是 session_start()函数被调用 100 次才会启动一次 “ 垃圾回收程序 ” 。所以对会话页面访问越频繁,启动的概率就越来越小。一般的建议为 调用1000-5000次才会启动一次: 1/(1000~5000)。

    展开全文
  • 浏览器异常关闭 session及时销毁 有什么好的思路没? 如果单纯的 触发 浏览器 关闭事件 不能完全诊断 alt+f4 断网 结束进程 很多不确定因素 有什么更好的办法没 请赐教
  • 不知道有没有人遇到过这样的变态问题,在管理服务器的时候,用远程桌面连接,在会话中还进行着任务的时候由于某种原因(断网或者误点)退出远程桌面,之后再连的时候已经连不到原来的会话中,而是新建立一个...
  • 不知道有没有人遇到过这样的变态问题,在管理服务器的时候,用远程桌面连接,在会话中还进行着任务的时候由于某种原因(断网或者误点)退出远程桌面,之后再连的时候已经连不到原来的会话中,而是新建立一个...
  • pageContext对象的范围只适用于当前页面范围,即超过这个页面就不能够使用...session的作用范围为一段用户持续和服务器所连接的时间,但与服务器断线后,这个属性就无效。比如断网或者关闭浏览器。 application...
  • 哎呀,我的笔记本断网了,我还在跑程序呢~又要重新跑了,好烦!!!这个程序要跑好久,我的电脑已经三天没有关机了,好卡呀~师妹来救救我呀~服务器断网了啊~我的程序跑了半个月了,啊啊啊啊~Screen来救你们啦,赶快...
  • 线上操作使用tmux提高工作效率

    千次阅读 2015-07-03 16:43:20
    对于经常在线上操作的人来说有一种烦恼,就是在操作过程中,有事离开了...如果断网了,只重新连接屏幕就行了,虚拟屏幕上的文字都还在。tmux的常用命令如下:tmux new -s session_name tux attach -t session_name tmux
  • 当使用 ssh远程登录 Linux终端的时候,这个终端以及在这个终端开启的所有进程都是在 一个 Session中,终端就是这个会话的会话头,一旦终端被杀死(比如说网络掉线或者主动退出等),这个会话里面的所有进程组和进程...
  • 网络游戏经常会发生(玩家断网、电脑死机、等)现象、这些会造成服务器里存在很多Session存在。 为什么Session会一直存在,不会自动销毁吗?因为服务器是不会知道这个Session是不是(玩家断网、电脑死机、等)现象...
  • 遇到的情况:提交的时候断网了,而且回滚失败,这时候需要DBA回滚未提交的事务来解决(一般情况下,提交者自己有权限再次提交或回滚当时没成功可能因为环境或工具的原因) alter system kill session 'XX,XXXXX', ...
  • Linux神器tmux

    2018-08-06 17:22:00
    一直以来为linux的session因为断网不能保存而烦恼。比如开会中远程连接到某linux,执行一个比较耗时的命令。开完会回到座位一看命令执行一半因为断网,只能从头再来。而windows的远程连接永远不会有这样的问题。...
  • 目前为止还没有一种方法能完全避免网上重复投票如果记录ip,一般ADSL断网再连ip就变设置cookie,浏览器都有禁用或者清除cookie的功能设置session,关闭浏览器就没所以,我们只能尽量防止重复投票现象PHP投票 24...
  • 如果记录ip,一般ADSL断网再连ip就变设置cookie,浏览器都有禁用或者清除cookie的功能设置session,关闭浏览器就没所以,我们只能尽量防止重复投票现象 PHP投票 24小时内只能投票一次 session_start();//获取...
  • 个人经验至少我认为目前为止还没有一种方法能完全避免网上重复投票的如果记录ip,一般ADSL断网再连ip就变设置cookie,浏览器都有禁用或者清除cookie的功能设置session,关闭浏览器就没所以,我们只能尽量防止...
  • 出现以上ORA错误是因为连接数和会话数满导致的。...如果还是不行,我这里是直接把数据库主机断网,再通过system用户登录sqlplus看一下procress和session的参数值和占用值: sqlplus; SQL> sh...
  • 今天同事在操作Oracle数据库表删数据时突然断网,再次连接的时候删数据就提示“record is locked by another user”,然后就百度找到如下解决方案。 方案步骤: 1、查锁 select t2.username,t2.sid,t2.serial#,...
  • ArcSDE经常在数据导入或编辑过程中中断,其间有人为因素(调试中断)也有非人为因素(断网),中断后的直接恶果就是... 通常让写程序的人很郁闷,因为在程序中已经调用StartEdit等,程序已经开始session编辑过程,确还报

空空如也

空空如也

1 2
收藏数 37
精华内容 14
关键字:

断网了session