systemd
是 Linux 系统中的系统和服务管理器,用于启动和管理系统服务、守护进程等。systemd
使用.service
文件来定义服务的行为和配置。下面是一个systemd
服务单元文件的基本示例,以及一些常见的配置选项。
假设我们有一个简单的 Python 脚本 example.py
,我们希望用 systemd
来管理它。以下是一个 .service
文件的示例:
example.service
ini[Unit]
# 服务的简要描述
Description=Example Python Service
# 确保网络服务已启动后再启动此服务
After=network.target
[Service]
# 指定服务启动时执行的命令,这里是运行 Python 脚本
ExecStart=/usr/bin/python3 /path/to/your/example.py
# 服务的工作目录
WorkingDirectory=/path/to/your
# 服务失败后重启策略。`on-failure` 表示服务因错误退出后会自动重启
Restart=on-failure
# 指定服务运行的用户
User=nobody
# 指定服务运行的组
Group=nogroup
# 设置服务运行时所需的环境变量
Environment=ENV_VAR=value
[Install]
# 指定服务应在 multi-user.target 目标下启用,这通常是系统的多用户运行级别
WantedBy=multi-user.target
在装好Linux/Windows双系统后, 出现的问题: 假如现在你在linux(Ubuntu)里面,时间是16:00, 你重启系统,引导到windows, 你会发现,windows的时钟显示,你的时间是8:00,如果你到时间设置里点击NTP同步,时间恢复到16:00, 但是,下一次再从linux切换到windows,问题再次发生。
推荐解决方法:Windows管理员执行如下命令,将硬件时钟设置为UTC时间:
powershellreg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /d 1 /t REG_DWORD /f
恢复为本地时间:
powershellreg delete "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /f
优先级 | 运算符 | 结合性 |
---|---|---|
1 | ( ) | 从左向右 |
2 | ~ - + (强制类型转换) ++ -- | 从右向左 |
3 | * / % | 从左向右 |
4 | + - | 从左向右 |
5 | << >> >>> | 从左向右 |
6 | & | 从左向右 |
7 | ^ | 从左向右 |
8 | | | 从左向右 |
9 | = += -= *= /= %= &= |= ^= <<= >>= >>>= | 从右向左 |
在 Linux 系统中,切换用户的方式有多种,不同方法适用于不同的场景。常见的切换用户的方式及其区别如下:
su
(Substitute User)su
命令用于切换到其他用户,默认为切换到 root 用户。
su -
:切换到 root 用户,并加载 root 用户的环境变量。su username
:切换到指定用户,但不加载该用户的环境变量。su - username
:切换到指定用户,并加载该用户的环境变量。su -
或 su - username
会像重新登录该用户一样,加载该用户的环境变量、路径等。su username
只切换用户,不会加载该用户的环境变量。frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议,且支持 P2P 通信。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括: