当前位置: 首页 > news >正文

河南省建设人才信息网站/关键字挖掘机爱站网

河南省建设人才信息网站,关键字挖掘机爱站网,网站排名优化seo,家居seo整站优化方案最近有个以前的ssm项目需要在新电脑上运行测试一下,发现需要redis环境,看了官网说:有两种选择: 1. 要么在虚拟机比如vmware安装linux基础环境,然后再安装redis 2. 要么可以利用win10的wsl linux子系统安装ubuntu&…

最近有个以前的ssm项目需要在新电脑上运行测试一下,发现需要redis环境,看了官网说:有两种选择:

1. 要么在虚拟机比如vmware安装linux基础环境,然后再安装redis

2. 要么可以利用win10的wsl linux子系统安装ubuntu,然后再安装redis

总之,需要linux环境

由于这是台新台式机,不想使用vmware安装,于是尝试安装了wsl版的ubuntu.

安装方法很简单: 在microsoft store应用商店里搜索ubuntu, 然后点击获取,下载完成以后。

点击打开即可。刚开始会提示初始化用户名,确认点几个回车以后,就可以用了。

但是这个ubuntu系统有个致命的问题:  通过lsof,netstat命令查看端口是没有任何输出的!

换句话说: 你没法使用lsof,netstat命令确定一个服务的状态是否是运行的!

这个问题相当糟糕,是一个非常严重的问题。

我查了很多资料,都没有找到原因,后来在下面的一篇文章中找到了线索:

https://www.reddit.com/r/bashonubuntuonwindows/comments/8cjko7/list_open_files_lsof_not_working/

I think I found the answer.

netstat and lsof both use /proc/net/* files including /proc/net/tcp to identify sockets, their type and status. These files are empty in WSL causing the socket to not be identified.

There is work being done to add netstat support, which leads me to believe that /proc/net/tcp and other files will contain information and thus lsof will work.

 简单说: 就是netstat和lsof是使用/proc/net/目录下的文件来查询socket, 因为linux一切皆文件。

但是在wsl系统中/proc/net/目录下的这些文件都是空的!,所以运行netstat和lsof比如没有任何输出!

 那么怎么解决这个问题呢,也查了很多资料,据说把wsl有两个版本: wsl1和wsl2,把wsl1升级到wsl2,然后重装ubuntu即可。

先检查一下系统是否满足安装wsl2的要求:

  1. Windows 版本: WSL 2 是从 Windows 10 版本 1903 及更高版本开始引入的。较早的 Windows 版本可能无法使用 WSL 2。

  2. 64 位系统: WSL 2 只支持 64 位的 Windows 操作系统。确保你的计算机硬件和操作系统都是 64 位的。

  3. 虚拟化支持: WSL 2 使用虚拟化技术(通常是 Hyper-V)来在 Windows 中运行一个真正的 Linux 内核。你的计算机必须支持虚拟化,并且虚拟化选项必须在 BIOS 或 UEFI 中启用。大多数现代计算机默认启用了虚拟化支持,但你可能需要在 BIOS 或 UEFI 设置中检查确认。

首先第一步:升级wsl1到wsl2:

  a. 用管理员权限打开powershell,运行下面的命令:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

重新启动

然后打开控制面板,在程序与功能—>启用或关闭Windows功能,检查下图中红框圈处是否已经勾选;若没有,则需要勾选并确认。

b. 接着安装wsl升级包: https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

至此wsl2安装完毕

注意:为了保证wsl2能彻底生效,需要运行下面的命令:

wsl --set-default-version 2

就是默认全局使用wsl2,注意:这一步非常,非常重要!是真正启用wsl2的关键!

然后第二步就是安装ubuntu了:

这里分两种情况:

1. 如果是已经安装过了ubuntu的,需要将其卸载

 然后从microsoft store应用商店里搜索ubuntu重新获取并安装即可。

 这时候运行wsl -l -v就会发现wsl version版本是2了。

此时再使用lsof命令查询端口就会有输出信息了:

网上有种方法:wsl --set-version Ubuntu 2,进行wsl2的重新绑定并完成迁移,但是我试过了,没有效果。不知道是不是需要:先将ubuntu程序进行重置,然后再通过wsl --set-version命令进行绑定。各位可以试试看。

2.  第二种情况:如果全新安装ubuntu的,直接从microsoft store应用商店里搜索ubuntu获取安装即可。

至此问题全部解决。

然后补充一下关于wsl的知识:

WSL是适用于Linux的Windows子系统(英语:Windows Subsystem for Linux,简称WSL)是一个为在windows10和windows server 2019以上能够原生运行Linux二进制可执行文件(ELF格式)的兼容层。

WSL 1是通过适配层实现的,当你在 WSL 1 中运行 Linux 命令时,这些命令会发送到适配层,然后适配层将 Linux 系统调用转换为 Windows 系统调用。

WSL1不是将非原生功能包装到Win32系统调用中,而是利用NT内核执行程序将Linux程序作为特殊的、隔离的最小进程(称为“pico-processes”)作为专用系统连接到内核模式“pico-providers”

Linux 应用程序实际上是在 Windows 用户模式进程中运行,因此它们与 Windows 主机操作系统共享一些资源。这可能导致一些限制,特别是在内存和进程管理方面。

 WSL1 和 WSL2。它们最大的不同是,WSL1 是基于动态翻译的方式将 Linux 的系统调用翻译成 Windows NT的系统调用,所以WSL1并不是原生的linux内核

开发者在 WSL1 中遇到的问题就是,部分 linux 的命令无法成功运行。当你遇到这个问题,将会一件非常恼火的事情。比如,WSL1 中无法成功运行 docker,因为需要 linux 关于命名空间的系统调用,而 WSL1 并不支持。最终,微软还是决定使用虚拟化技术来克服这一问题

而 WSL2 是基于虚拟机的,通过在虚拟机中运行真正的 Linux 内核,显著提高了性能。它更接近于原生 Linux 环境,可以更好地处理文件系统 I/O 和网络性能。

  • WSL 1:在WSL 1中,Windows主机操作系统和Linux子系统之间使用了适配层。Linux系统调用被转换为Windows系统调用,但它仍然是运行在Windows宿主操作系统的子系统。
  • WSL 2:WSL 2通过在Windows宿主系统上运行一个真正的Linux内核实现了更高的兼容性。它通过虚拟机(基于Hyper-V技术)来运行这个内核,从而更接近于独立的Linux环境。

相关文章:

解决win10 wsl子系统安装的ubuntu环境中lsof,netstat命令查看端口没有任何输出的问题

最近有个以前的ssm项目需要在新电脑上运行测试一下,发现需要redis环境,看了官网说:有两种选择: 1. 要么在虚拟机比如vmware安装linux基础环境,然后再安装redis 2. 要么可以利用win10的wsl linux子系统安装ubuntu&…...

【OpenFeign】OpenFeign结合Hystrix和Sentinel实现熔断降级

OpenFeign可以与Hystrix和Sentinel结合使用&#xff0c;实现降级和熔断。 OpenFeign与Hystrix结合使用 使用OpenFeign需要引入OpenFeign的依赖&#xff1a; <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-sta…...

软件工程(十) 需求工程之需求开发与管理

前面我们学习到了需求工程的概念与分类,我们知道了需求工程主要分为需求开发和需求管理,但是没有说明到底该如何开发需求,有哪些方法去开发需求。到底该如何进行需求管理,又有哪些进行需求管理的方式。具体是如何去做的。下面我们将会详细进行描述。 1、需求开发 1.1、需…...

C++网狐服务器引入开源日志库spdlog

很多人对日志库不以为然&#xff0c;包括网狐这种十几年的公司都不重视&#xff0c;其实日志库记录的东西能在线上出问题时高效解决&#xff0c;特别是别人写的东西&#xff0c;人又走了&#xff0c;出了问题&#xff0c;还可以用日志分析快速解决。要是没有日志记录&#xff0…...

【C++】—— c++11之智能指针

前言&#xff1a; 本期&#xff0c;我们将要学习的是在c11中新提出的概念——异常指针&#xff01; 目录 &#xff08;一&#xff09;智能指针的引入 &#xff08;二&#xff09;内存泄漏 1、什么是内存泄漏&#xff0c;内存泄漏的危害 2、内存泄漏分类&#xff08;了解&a…...

html5——前端笔记

html 一、html51.1、理解html结构1.2、h1 - h6 (标题标签)1.3、p (段落和换行标签)1.4、br 换行标签1.5、文本格式化1.6、div 和 span 标签1.7、img 图像标签1.8、a 超链接标签1.9、table表格标签1.9.1、表格标签1.9.2、表格结构标签1.9.3、合并单元格 1.10、列表1.10.1、ul无序…...

如何在 Vue TypeScript 项目使用 emits 事件

Vue是构建出色的Web应用程序的最灵活、灵活和强大的JavaScript框架之一。Vue中最重要的概念和关键特性之一是能够促进应用程序组件之间的通信。让我们深入探讨一下Vue中的“emits”概念&#xff0c;并了解它们如何以流畅和无缝的方式实现父子组件之间的通信。 Vue中的emits是什…...

文件操作 黑马教程(04)

1.文本文件 写文件 #include "iostream" #include "fstream" using namespace std; /** 文件操作** 程序运行时产生的数据都属于临时数据&#xff0c;程序一旦结束都会被释放* 通过文件可以将数据持久化* C中对文件操作需要包含头文件<fstream>** 文…...

Jmeter(二十七):BeanShell PostProcessor跨线程全局变量使用

在性能测试中&#xff0c;两个相关联的接口不一定都在同一个线程组&#xff0c;遇见这种情况时&#xff0c;我们要进行跨线程组传参&#xff0c;此处用登录和查询配送单两个请求举例&#xff1b; 1、登录请求中配置json提取器&#xff0c;将接口返回的token保存在变量中&#…...

手写表格OCR识别并与大模型ChatGPT交互?

这是一张手写表格&#xff0c;姓名做了脱敏处理。现在需要对其识别&#xff0c;并分析。 直接粘贴剪切板中的表格原始图片&#xff0c;在网页中ctlV进行识别。识别结果列用分隔符|&#xff0c;可以直接粘贴到excel&#xff0c;进行数据列分隔。为了美观期间&#xff0c;也可以用…...

使用 v-for 指令和数组来实现在 Uni-app 中动态增减表单项并渲染多个数据

在 data 中定义一个数组&#xff0c;用于存储表单项的数据&#xff1a; data() {return {formItems: []} } 在模板中使用 v-for 指令渲染表单项&#xff1a; <template><div><div v-for"(item, index) in formItems" :key"index"><…...

xml

1.xml 1.1概述【理解】 万维网联盟(W3C) 万维网联盟(W3C)创建于1994年&#xff0c;又称W3C理事会。1994年10月在麻省理工学院计算机科学实验室成立。 建立者&#xff1a; Tim Berners-Lee (蒂姆伯纳斯李)。 是Web技术领域最具权威和影响力的国际中立性技术标准机构。 到目前为…...

Java中的动态代理(JDK Proxy VS CGLib)

前言 动态代理可以说是Java基础中一个比较重要的内容&#xff0c;这块内容关系到Spring框架中的AOP实现原理&#xff0c;所以特别写了一篇作为个人对这块知识的总结。这部分内容主要包括&#xff1a;JDK Proxy和CGLib的基本介绍、二者的实现原理、代码示例等。 什么是动态代理…...

Redis 7 第七讲 哨兵模式(sentinal)

哨兵模式 哨兵巡查监控后台master主机是否故障,如果出现故障根据投票时自动将某一个从库转换成新的主库,继续对外服务。 作用 1. 监控redis运行状态,包括master和slave 2. 当master down机,能自动将salve切换成新的master 应用场景 主从监控监控主从redis库运行的状态…...

Python入门教程 - 判断语句(二)

目录 一、布尔类型 二、比较运算符 三、if判断语句 一、布尔类型 True False result1 10 > 5 result2 10 < 5 print(result1) print(result2) print(type(result1)) True False <class bool> 二、比较运算符 ! > < > < 比较运算的结果是布尔…...

LeetCode-55-跳跃游戏-贪心

题目描述&#xff1a; 给你一个非负整数数组 nums &#xff0c;你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标&#xff0c;如果可以&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 解…...

【USRP】调制解调系列4:BPSK、QPSK、8PSK、OQPSK、Pi/4DQPSK,基于labview的实现

PSK Phase Shift Keying – 相移键控 在某些调制解调器中用于数据传输的调制系统&#xff0c;在最简单的方式中&#xff0c;二进制调制信号产生0和1。载波相位来表示信号占和空或者二进制1和O。对于有线线路上较高的数据传输速率&#xff0c;可能发生4个或8个不同的相移&…...

深入探讨梯度下降:优化机器学习的关键步骤(一)

文章目录 &#x1f340;引言&#x1f340;什么是梯度下降&#xff1f;&#x1f340;损失函数&#x1f340;梯度(gradient)&#x1f340;梯度下降的工作原理&#x1f340;梯度下降的变种&#x1f340;随机梯度下降&#xff08;SGD&#xff09;&#x1f340;批量梯度下降&#xf…...

layui框架学习(40:数据表格_主要事件)

Layui数据表格模块主要通过各类事件响应工具栏操作、单元格编辑或点击等交互操作&#xff0c;本文学习table数据表格模块中的主要事件及处理方式。   头部工具栏事件。通过代码“table.on(‘toolbar(test)’, function(obj))”获取lay-filter属性为test的数据表格的头部工具栏…...

kotlin实现猜数游戏

游戏规则 1.程序随机生成一个1到100的数字&#xff0c;作为MagicNumber 2.用户根据提示输入数据&#xff0c;只有三次机会输入数据 代码 代码很简单&#xff0c;使用了let内置函数 fun main() {//生成随机数可以使用java的方法//val magicNumber Random().nextInt(11)val ma…...

51单片机项目(8)——基于51单片机的DS1302时钟系统

本次做的设计&#xff0c;是利用DS1302时钟芯片&#xff0c;做了一个时钟&#xff0c;并且将实时时间通过串口发送到上位机进行显示。系统运行如下&#xff1a;&#xff08;protues文件和相关keil代码会在文章最后给出&#xff01;&#xff01;&#xff01;&#xff09; DS1302…...

高频策略:做市商与逆向选择

参与交易市场的三类人&#xff1a; 出于某种现实的需要而进行交易的人。例如投资者买入股票等金融资产长期持有&#xff0c;是为了使自己当前的资产进行升值&#xff0c;获得比银行利息更高的收益&#xff1b;制造业公司为了锁定生产成本而进行对冲交易。对于这些人来说&#…...

Valgrind内存诊断工具的使用笔记

Valgrind是一款用于内存调试、内存泄漏检测以及性能分析的神器&#xff0c;能够帮助我们快速定位到程序的内存问题&#xff0c;比如内存泄漏导致的 段错误 (核心已转储) 包含以下工具&#xff1a; Memcheck&#xff1a;检查程序中的内存问题&#xff0c;如泄漏、越界、非法指…...

docker安装Nacos

哈喽&#xff01;大家好&#xff0c;我是旷世奇才李先生 文章持续更新&#xff0c;可以微信搜索【小奇JAVA面试】第一时间阅读&#xff0c;回复【资料】更有我为大家准备的福利哟&#xff0c;回复【项目】获取我为大家准备的项目 文章目录 一、Nacos是什么1、简介2、功能1、服务…...

【Linux】线程安全-死锁

文章目录 死锁问题场景1场景2死锁的gdb调试造成死锁的必要条件不可剥夺循环等待互斥条件请求和保持 预防死锁破坏必要条件&#xff0c;循环等待&请求和保持加锁顺序一致避免锁没有被释放资源一次性分配 死锁问题 死锁的两种场景&#xff1a; 场景1 线程加锁之后一直没有将锁…...

pdf转换成图片免费软件用哪个?pdf转换成图片就用它

随着技术的发展&#xff0c;现在企业办公运用到的电子文档各种各样&#xff0c;我们日常需要掌握的技能越来越高要求&#xff0c;其中pdf和图片是我们经常接触的文件格式之一&#xff0c;而且这两个文件格式我们会经常将它们进行转换&#xff0c;那么pdf转换成图片怎么操作呢?…...

【LeetCode】《LeetCode 101》第十二章:字符串

文章目录 12.1 字符串比较242 . 有效的字母异位词&#xff08;简单&#xff09;205. 同构字符串&#xff08;简单&#xff09;647. 回文子串&#xff08;中等&#xff09;696 . 计数二进制子串&#xff08;简单&#xff09; 12.2 字符串理解224. 基本计算器&#xff08;困难&am…...

Android去掉视频声音

【Android】使用MediaExtractor、MediaMuxer去掉视频文件中的音频数据_android 去掉视频音频_little_fat_sheep的博客-CSDN博客 void removeSound() {try {String path Environment.getExternalStorageDirectory().getPath();String filename "no_sound_" input_p…...

java-thread-affinity线程绑核

通过将线程绑定到指定的cpu上&#xff0c;可以提高执行效率。因为每次都是相同的cpu,可以充分利用高速缓存&#xff0c;在java中可以使用以下依赖来使用。 <dependency><groupId>net.openhft</groupId><artifactId>affinity</artifactId><ver…...

Springboot - 5.test集成

&#x1f440;1. 简介 spring-boot-starter-test是Spring Boot框架中的一个模块&#xff0c;用于支持在项目中进行单元测试和集成测试。它提供了一些依赖项和工具&#xff0c;使得编写和运行测试变得更加方便。以下是关于spring-boot-starter-test的全面介绍&#xff1a; ✌1…...