Alpine Linux使用中的一些常用命令整理 附教程:将自己的应用添加到服务设置开机自动运行
Alpine Linux 是一个轻量级的 Linux 发行版,广泛应用于容器化环境和嵌入式系统中。由于其体积小、启动快、资源占用低等特点,Alpine Linux 在 Docker 容器中尤为流行。本文将整理一些在 Alpine Linux 中常用的命令,帮助你更好地管理和使用这个系统。
1. 包管理
Alpine Linux 使用 apk
作为包管理工具,类似于 Debian 的 apt
或 CentOS 的 yum
。
1.1 更新包索引
apk update
该命令会更新本地包索引,确保你获取到最新的包信息。
1.2 安装软件包
apk add <package_name>
例如,安装 curl
:
apk add curl
1.3 删除软件包
apk del <package_name>
例如,删除 curl
:
apk del curl
1.4 搜索软件包
apk search <keyword>
例如,搜索与 nginx
相关的包:
apk search nginx
1.5 查看已安装的包
apk info
该命令会列出所有已安装的包。
2. 系统管理
2.1 查看系统信息
cat /etc/alpine-release
该命令会显示当前 Alpine Linux 的版本信息。
2.2 查看系统时间
date
2.3 查看磁盘使用情况
df -h
该命令会以人类可读的格式显示磁盘使用情况。
2.4 查看内存使用情况
free -h
该命令会以人类可读的格式显示内存使用情况。
3. 网络管理
3.1 查看网络接口
ip addr show
或
ip a
该命令会显示所有网络接口的详细信息。
3.2 测试网络连通性
ping <hostname_or_ip>
例如,测试与 google.com
的连通性:
ping google.com
3.3 查看路由表
ip route show
该命令会显示当前系统的路由表。
4. 文件管理
4.1 查看文件内容
cat <filename>
例如,查看 /etc/hosts
文件的内容:
cat /etc/hosts
4.2 编辑文件
Alpine Linux 默认没有安装 vi
或 vim
,但你可以使用 nano
作为简单的文本编辑器。
nano <filename>
例如,编辑 /etc/hosts
文件:
nano /etc/hosts
4.3 查找文件
find / -name <filename>
例如,查找名为 nginx.conf
的文件:
find / -name nginx.conf
5. 用户管理
5.1 添加用户
adduser <username>
例如,添加一个名为 alice
的用户:
adduser alice
5.2 删除用户
deluser <username>
例如,删除用户 alice
:
deluser alice
5.3 修改用户密码
passwd <username>
例如,修改用户 alice
的密码:
passwd alice
6. 服务管理
Alpine Linux 使用 openrc
作为初始化系统,类似于 systemd
。
6.1 启动服务
rc-service <service_name> start
例如,启动 sshd
服务:
rc-service sshd start
6.2 停止服务
rc-service <service_name> stop
例如,停止 sshd
服务:
rc-service sshd stop
6.3 重启服务
rc-service <service_name> restart
例如,重启 sshd
服务:
rc-service sshd restart
6.4 查看服务状态
rc-service <service_name> status
例如,查看 sshd
服务的状态:
rc-service sshd status
6.5 重新加载服务配置
有些服务支持重新加载配置文件而不需要重启整个服务。可以使用以下命令:
sudo rc-service <service_name> reload
例如
sudo rc-service nginx reload
6.6 启用服务自启动
要使服务在系统启动时自动启动,可以使用以下命令:
sudo rc-update add <service_name> default
例如:
sudo rc-update add sshd default
6.7 禁用服务自启动
要禁用服务在系统启动时自动启动,可以使用以下命令:
sudo rc-update del <service_name> default
例如:
sudo rc-update del sshd default
6.8 列出所有服务
要列出所有可用的服务,可以使用以下命令:
rc-status
6.9 列出已启用的服务
要列出当前已启用的服务,可以使用以下命令:
rc-status -a
6.10 手动运行服务脚本
如果你想手动运行某个服务的启动脚本,可以使用以下命令:
sudo /etc/init.d/<service_name> start
示例:
sudo /etc/init.d/sshd start
在 Alpine Linux 中,你可以使用 openrc
来创建一个自定义的开机服务,并设置它在进程挂掉时自动重启。以下是一个详细的步骤指南,教你如何为你的 Go 应用创建一个开机服务。
1. 创建服务脚本
首先,你需要在 /etc/init.d/
目录下创建一个服务脚本。假设你的 Go 应用名为 myapp
,你可以创建一个名为 myapp
的服务脚本。
sudo vi /etc/init.d/myapp
在脚本中,你需要定义服务的启动、停止、重启等操作。以下是一个示例脚本:
#!/sbin/openrc-run
description="My Go Application"
command="/path/to/your/go/application"
command_args=""
pidfile="/run/myapp.pid"
output_log="/var/log/myapp.log"
error_log="/var/log/myapp.error.log"
depend() {
need net
after firewall
}
start() {
ebegin "Starting My Go Application"
start-stop-daemon --start --background --make-pidfile --pidfile "$pidfile" --exec "$command" -- $command_args >> "$output_log" 2>> "$error_log"
eend $?
}
stop() {
ebegin "Stopping My Go Application"
start-stop-daemon --stop --pidfile "$pidfile"
eend $?
}
restart() {
stop
start
}
2. 设置脚本权限
确保脚本具有可执行权限:
sudo chmod +x /etc/init.d/myapp
3. 启用服务自启动
使用 rc-update
命令将服务添加到默认运行级别,使其在系统启动时自动启动:
sudo rc-update add myapp default
4. 设置服务自动重启
为了在进程挂掉时自动重启服务,你可以在服务脚本中使用 respawn
功能。respawn
是一个 openrc
提供的功能,用于在进程退出时自动重启。
你可以在脚本的 start()
函数中添加 respawn
功能:
#!/sbin/openrc-run
description="My Go Application"
command="/path/to/your/go/application"
command_args=""
pidfile="/run/myapp.pid"
output_log="/var/log/myapp.log"
error_log="/var/log/myapp.error.log"
depend() {
need net
after firewall
}
start() {
ebegin "Starting My Go Application"
start-stop-daemon --start --background --make-pidfile --pidfile "$pidfile" --exec "$command" -- $command_args >> "$output_log" 2>> "$error_log"
eend $?
respawn
}
stop() {
ebegin "Stopping My Go Application"
start-stop-daemon --stop --pidfile "$pidfile"
eend $?
}
restart() {
stop
start
}
5. 启动服务
现在你可以手动启动服务来测试它:
sudo rc-service myapp start
6. 检查服务状态
你可以使用以下命令检查服务的状态:
sudo rc-service myapp status
7. 重启服务
如果你需要重启服务,可以使用以下命令:
sudo rc-service myapp restart
总结
通过以上步骤,你已经成功创建了一个自定义的开机服务,并设置了它在进程挂掉时自动重启。这个过程类似于 systemd
的 service
文件,但使用了 openrc
的语法和工具。希望这些步骤对你有所帮助!
版权声明:本文为原创文章,版权归 全栈开发技术博客 所有。
本文链接:https://www.lvtao.net/system/alpine-linux.html
转载时须注明出处及本声明