标签 Linux 下的文章

直接运行java程序

假设我们在容器中直接启动的是我们的程序,例如java -jar xxx.jar。如果执行docker stop <container>,则意味着调用了kill -15 1

对于java程序而言,它会接收到SIGTERM信号,Runtime的ShutdownHook钩子将会被回调。像spring这样的框架,都会把自己加入到ShutdownHook回调中,在回调中执行destroy、close等生命周期操作。

所以说如果只是执行kill -15 PID命令,java程序是可以优雅的关闭。但同时我们也能看出,如果在ShutdownHook钩子中执行很耗时的操作,那么执行这个命令短时间内也不会停止java程序。所以在ShutdownHook中尽量不要做耗时长的操作,而是应该处理一些IO关闭、缓存刷新的操作。

- 阅读剩余部分 -

portainer是一个docker的图形化管理界面,可以使用docker来安装portainer。

如果是管理本机docker,命令如下:

docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock --restart=always --name prtainer portainer/portainer

- 阅读剩余部分 -

frp是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,为 http 和 https 应用协议提供了额外的能力,且尝试性支持了点对点穿透。

2017年我曾经整理过一篇关于frp的文章,当时frp的版本还是V0.20.0,现在已经发展到了v0.32.1。其中有一些小变动和补充,我会在这里做一个再次整理。

- 阅读剩余部分 -

Network File System(NFS) 是操作系统通过网络共享文件夹和文件的服务。NFS客户端通过挂载(mount)的方式将NFS服务端的共享文件夹挂载到自己的操作系统上,NFS客户端上的用户和程序就能像访问本地磁盘内容一样访问NFS服务端所共享的文件夹。和NFS功能类似的还有samba服务。

NFS可以提供以下好处:

  1. 众多客户端通过共享一个文件夹从而节约空间。例如NFS服务端有一部电影,那么所有NFS客户端都可以读取这部电影,而不用存一份电影到本地磁盘。
  2. 同一个用户的home文件夹可以在不同的计算机上共享。例如,一个用户有多台个人电脑,那么可以通过共享home文件夹,从而实现在多台电脑上操作同一份数据。
  3. 不同的存储设备(例如U盘、光盘)可以通过网络共享给其他计算机,这样就不用频繁移动这些存储设备。

- 阅读剩余部分 -

家里有一台几年前买的戴尔SFF主机,配置是i7-3770,(8GB DDR3)*3,1Gbps网卡,基本上一直都在吃灰。最近准备拿来装虚拟机玩,调研了有一阵子后,决定使用proxmox(pve)

proxmox的优势主要有以下几个方面

  1. 个人使用免费
  2. 使用简单,基本上就是debian上加了一个pve的程序。
  3. 稳定性,相比window而言,不用操太多心。

- 阅读剩余部分 -