首页 > 技术文章 > Linux常用应用工具搭建使用

hi-9527 2021-10-15 14:12 原文

前言

仅供自己学习记录

简介

  • 记录一些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:

  • 您已成功连接到Ubuntu服务器的XFCE桌面:
  • 您可以像在办公室中使用物理服务器一样控制服务器。例如,您可以访问文件管理器,启动程序或打开终端:

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服务器。

推荐阅读