Linux常用应用工具搭建使用
前言
仅供自己学习记录 #
简介#
- 记录一些linux常用的高效开发工具应用
supervisor#
- 简介:supervisor是python开发的通用进程管理程序,可以将普通的命令行进程变成后台daemon,监控进程状态,当进程异常退出时可自动重启。
- 原理:通过fork/exec来把被管理进程当作自己的子进程来启动,只需将supervisor的配置文件加上进程可执行文件路径即可。当子进程异常后,父进程可以准确获取子进程挂掉的信息,可以选择自己启动和报警。
1. 安装及配置(此处介绍的是Ubuntu系统下的安装使用)#
- 1.1 指令安装
sudo apt-get install supervisor
- vim /etc/supervisor/supervisord.conf 打开文件会发现最后两行代码如下,作用就是启动执行的配置文件所在路径
[include]
files = /etc/supervisor/conf.d/*.conf
2. 使用方式(此处只介绍单独配置文件的方式,也可以直接在supervisor.conf文件末尾追加)#
- 2.1 配置执行文件
- 建议在/etc/supervisor/conf.d/文件夹中为每一个进程创建一个进程配置。如/etc/supervisor/conf.d/frpc.conf,文件.conf前的名字可以自行设定
- 下面是常规配置
[program:frpc]
command=/home/server/frp/frpc -c /home/server/frp/frpc.ini ;进程的启动命令(frpc>是一个可执行进程)
process_name=%(program_name)s ;进程名字(这是默认的写法)
numprocs=1 ;启动几个该进程
autostart=true ;在supervisord启动时也自动启动
autorestart=true ;程序异常退出后自动重启
directory=/home/server/frp ;程序的启动目录
- 下面为可选启动文件的全部详细配置,可根据自己的需求自定义选择,常规配置只需要上一步的配置内容就够了
[program:test]
command=sh /usr/local/bin/test.sh ;被监控的进程路径
numprocs=1 ; 启动一个进程
directory=/usr/local/bin/ ;执行前切换路径
autostart=true ; 随着supervisord的启动而启动
autorestart=true ; 自动重启
startretries=10 ; 启动失败时的最多重试次数
exitcodes=0 ; 正常退出代码
stopsignal=KILL ; 用来杀死进程的信号
stopwaitsecs=10 ; 发送SIGKILL前的等待时间
redirect_stderr=true ; 重定向stderr到stdout
stdout_logfile=logfile ; 指定日志文件
- 2.2 运行指令
#载入最新配置的文件:
supervisorctl reload
#根据最新的配置文件,启动新配置或有改动的进程:
supervisorctl update
# 重启supervisor:
sudo systemctl restart supervisor
# 查看supervisor运行状态(包含正在执行的任务)
sudo supervisorctl status
#启动进程:
supervisorctl start xxx
#重启进程:
supervisorctl restart xxx
#重启所有属于名为group的分组进程:
supervisorctl restart group
#停止所有属于名为group的分组进程:
supervisorctl stop group
#停止全部进程:
supervisorctl stop all
VNC#
- 参考文献
https://www.cnblogs.com/aguai1992/p/4658231.html - 简介:VNC是虚拟网络计算的缩写。它可以帮助您远程控制Ubuntu机器。VNC服务器使用远程帧缓冲协议(RFB)来远程控制另一台计算机。
- 原理:当技术支持人员使用键盘或鼠标时,VNC会将信号从键盘和鼠标传输到远程服务器。它通过图形用户界面使管理工作更加轻松便捷。此外,VNC比图形SSH和RDP连接更可靠。
1. 安装桌面环境和VNC服务器(此处介绍的是Ubuntu系统下的安装使用)#
首先,让我们在Ubuntu服务器上安装桌面环境,因为默认情况下未安装它。有很多选择:GNOME,MATE,XFCE等。
在本教程中,我们将选择XFCE。这是一个轻量级的桌面环境,它有助于VNC连接稳定和流畅。
- 在您的Ubuntu服务器上,运行以下命令以更新软件包列表:
$ sudo apt update
- 然后,让我们安装XFCE桌面环境:
$ sudo apt install xfce4 xfce4-goodies gnome-icon-theme
- 在这里,我使用的是TightVNC服务器,其他流行的VNC服务器是TigerVNC和x11vnc。安装tightvnc:
$ sudo apt install tightvncserver
- 接下来,让我们运行VNC服务器实例,您必须为已安装的服务器设置密码:
$ vncserver
由于我们是在安装后第一次启动服务器,它将要求我们设置客户端用来连接的密码。它还将要求设置仅查看密码,该密码将允许用户查看屏幕但不能与其交互。
请注意,密码长度在6到8个字符之间。如果输入较长的密码,它将被自动删节。
- 如果要更改VNC服务器的密码,请运行:
$ vncpasswd
2、配置VNC服务器#
首次启动VNC服务器实例时,将创建初始配置文件:“〜/ .vnc / xstartup”,并且VNC服务器侦听端口5901。我们将此端口称为显示端口。我们可以启动VNC服务器的许多实例,每个实例都有自己的显示端口:第一个显示器侦听端口5901,第二个显示器侦听端口5902,依此类推。
必须将VNC服务器配置为与Ubuntu服务器启动一起运行。此外,您必须明确指出VNC服务器将连接到哪个桌面环境。
- 首先,让我们停止当前在TCP端口5901上运行的VNC服务器实例:
$ vncserver -kill :1
- 然后备份当前配置文件:
$ cp ~/.vnc/xstartup ~/.vnc/xstartup.bak
- 现在,使用您喜欢的编辑器修改“xstartup”文件,如下所示:
#!/bin/sh
xrdb $HOME/.Xresources
startxfce4 &
- 重新启动VNC服务器:
$ vncserver -localhost
连接到VNC服务器
默认情况下,VNC服务器不使用安全协议。为了保护与远程Ubuntu服务器的连接,您必须创建SSH隧道,并指示VNC客户端通过该隧道连接到VNC服务器。
- 让我们在本地计算机上建立SSH连接,以将流量转发到VNC的“本地主机”。在本地计算机(macOS或Linux)上启动终端,运行以下命令:
$ ssh -L 59000:localhost:5901 -C -l <user> <server_ip_address>
其中:
-L 59000:localhost:5901:本地计算机上的端口为59000将转发到目标服务器:localhost:5901
-C:压缩数据以加快连接速度
-l <user> <server_ip_address>:指示您要登录的用户以及Ubuntu 20.04服务器的IP地址。
3、在Windows上设置SSH隧道#
如果运行Windows操作系统,则可以使用PuTTY SSH客户端设置SSH隧道。
让我们打开PuTTY,然后输入Ubuntu服务器的IP地址:
接下来,展开子菜单“Connection > SSH > Tunnels”,在“Source port”源端口中输入“ 5901”,在“Destination”目标中输入“<server_ip_address>:5901”。然后,单击“Add”添加按钮,如下所示:
过使用SSH隧道,与Ubuntu 20.04服务器的VNC连接仅允许可以SSH到该服务器的计算机。不允许每台机器仅连接到端口5901。
现在,您可以使用VNC客户端连接到远程Ubuntu服务器。在本教程中,我们使用VNC查看器。打开VNC客户端,然后输入服务器IP地址和端口5901:
4、将VNC服务器设置为systemd服务#
通过将VNC服务器作为系统服务运行,您可以随时方便地启动,停止或重新启动它。
让我们在Ubuntu服务器上的目录“/etc/systemd/system/”中创建一个名为“ vncserver @ .service” 的新文件:
$ sudo vim /etc/systemd/system/vncserver@.service
将以下内容添加到文件“ vncserver @ .service”,并确保编辑第7、8、9和13行中的值以匹配您的环境。
[Unit]
Description=Start TightVNC server at startup
After=syslog.target network.target
[Service]
Type=forking
User=ubuntu
Group=ubuntu
WorkingDirectory=/home/ubuntu
PIDFile=/home/ubuntu/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 -localhost :%i
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy = multi-user.target
然后,重新加载系统守护程序:
`$ sudo systemctl daemon-reload`
启用服务:
$ sudo systemctl enable vncserver@1.service
其中:
@ 1.service:第一个显示器与端口5901关联。
输出:
Created symlink /etc/systemd/system/multi-user.target.wants/vncserver@1.service → /etc/systemd/system/vncserver@.service.
kill正在运行的实例:
$ vncserver -kill :1
Killing Xtightvnc process ID 3159
然后再次启动该systemd服务:
$ sudo systemctl start vncserver@1
现在,您可以验证服务是否正常运行:
$ sudo systemctl status vncserver@1
在本教程中,我们学习了如何在Ubuntu 20.04上安装和配置VNC服务器。现在,您可以使用图形用户界面来远程管理Ubuntu服务器。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具