Linux常见问题记录

1.Ubuntu中文乱码问题解决

Ubuntu 中文乱码问题处理-腾讯云开发者社区-腾讯云

2.Linux后台运行.Net开发的软件

2.1 方案一

可以使用screen命令,在文件目录下执行命令:

screen -S session_name dotnet yourprogramme.dll

其中,session_name替换为一个任意好记的名字,yourprogramme替换为你程序的文件名。

例如:screen -S mytest dotnet hellowordtest.dll

如果系统中没装screen,是不可以用的。需要安装screen,Ubuntu下安装方法(其他系统请自行搜索):

sudo apt update
sudo apt install screen

2.2 方案二

在系统启动时自动运行程序,可将其配置为系统服务。在Linux系统中将.NET Core应用程序配置为系统服务的一般步骤:
1. 创建一个服务文件:在`/etc/systemd/system/`目录下创建一个新的服务文件,比如`your_service.service`。
2. 打开服务文件并编辑:使用文本编辑器打开该服务文件,并将以下内容添加到文件中(根据你的应用程序进行适当的替换):
```plaintext
[Unit]
Description=Your Service Description
After=network.target

[Service]
WorkingDirectory=/path/to/your/application
ExecStart=/usr/bin/dotnet /path/to/your/application/your_program.dll
Restart=always
# 如果你的应用程序需要特定的环境变量,可以在这里添加
#Environment=KEY=VALUE

[Install]
WantedBy=multi-user.target
```

确保将`/path/to/your/application`替换为你的应用程序的实际路径,将`your_program.dll`替换为你的应用程序的实际入口文件。

3. 保存并关闭文件。
4. 重新加载systemd服务配置:运行以下命令重新加载systemd服务配置文件:
```bash
sudo systemctl daemon-reload
```

5. 启动服务:运行以下命令启动你的服务:
```bash
sudo systemctl start your_service
```

6. 验证服务状态:可以运行以下命令检查服务的状态:
```bash
sudo systemctl status your_service
```

3.Linux查看后台运行软件的控制台打印内容

有时如果我们采用后台运行软件,后台线程打印的日志是没办法在当前窗口直接看到的,但有解决方案。

如果你想在后台运行的程序中实时查看控制台打印的内容,你可以使用 `screen` 或 `tmux` 这样的终端多路复用工具重新连接到程序的控制台。

如果你使用了 `screen`,可以按照以下步骤重新连接到程序的控制台:

1. 运行 `screen -r` 命令,它将会连接到最近一个正在运行的 `screen` 会话。

2. 如果你有多个 `screen` 会话,可以使用 `screen -ls` 命令列出所有会话,并在连接时指定会话的标识符。例如:screen -r mytest

一旦重新连接到 `screen` 会话,你将能够实时查看程序在控制台上打印的内容。

如果想退出这个会话但不关闭其后台运行,即,要在screen会话中退出而不关闭会话,可以使用以下步骤:

按下Ctrl + A,然后松开。

接着按下小写字母d(即Ctrl + A,然后d,意为"分离"),这将使你从screen会话中分离出来,但会话仍在后台运行。

这样你就可以退出screen会话而不关闭它。随后,你可以使用screen -r命令重新连接到这个会话。



如果你使用了 `tmux`,则可以按照以下步骤重新连接到程序的控制台:

1. 运行 `tmux attach-session` 命令,它将会连接到最近一个正在运行的 `tmux` 会话。

2. 类似地,如果你有多个 `tmux` 会话,可以使用 `tmux list-sessions` 命令列出所有会话,并在连接时指定会话的标识符。

重新连接到 `tmux` 会话后,你将能够实时查看程序在控制台上打印的内容。

通过使用 `screen` 或 `tmux`,你可以重新连接到程序的控制台,无论你是否关闭了原始SSH终端会话。这样,你就可以在后台运行程序的同时方便地查看控制台输出。
如果你在程序中使用了控制台打印语句,并且希望在后台运行的同时能够查看打印的内容,可以尝试以下方法:

1. 将程序的输出重定向到文件:在启动程序时,将标准输出重定向到一个文件中。例如,使用以下命令启动程序并将输出保存到`output.log`文件中:

```bash
nohup dotnet your_program.dll > output.log &
```

这样,程序的输出将会被追加到`output.log`文件中,你可以通过查看该文件来查看程序在后台运行时的打印内容。

2. 实时查看日志:使用`tail`命令实时查看输出文件的内容。例如,使用以下命令查看最新的10行日志:

```bash
tail -n 10 -f output.log
```

这将在终端中实时显示文件的最新内容,包括程序打印的信息。

通过将程序的输出重定向到文件并使用`tail`命令查看日志,你可以在后台运行程序的同时方便地查看程序打印的内容。

你可能感兴趣的:(linux,运维,服务器)