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 默认没有安装 vivim,但你可以使用 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

总结

通过以上步骤,你已经成功创建了一个自定义的开机服务,并设置了它在进程挂掉时自动重启。这个过程类似于 systemdservice 文件,但使用了 openrc 的语法和工具。希望这些步骤对你有所帮助!

标签: Linux

相关文章

Linux下的SSH服务配置与安全使用指南

重要提示:本文只是我日常使用的参考,请你先在本地做好测试,以免修改后不能正常登录服务器。 尤其是密钥登录的情况,一定要先将公钥放到服务器对应目录中SSH(Secure Shell)是一种加密网络...

macOS下使用UTM安装Alpine Linux虚拟机

在macOS下使用UTM(Universal Turing Machine)安装Alpine Linux虚拟机是一个相对简单的过程,但需要一些基本的配置和步骤。以下是详细的指南,涵盖了从安装UT...

Linux下swap分区的使用及配置

在Linux系统中,Swap分区用于在物理内存(RAM)不足时,将部分内存数据转移到硬盘上,以释放内存空间。Swap分区对于系统的稳定运行至关重要,尤其是在内存资源有限的情况下。本文将详细介绍如...

如何实现让我们部署的Go应用在进程挂掉之后自动重启

在软件开发和部署过程中,确保应用的高可用性是至关重要的。对于使用Go语言开发的应用来说,实现在进程异常终止后自动重启是提高服务稳定性的有效策略之一。下面将围绕如何实现Go应用在挂掉之后自动重启进...

图片Base64编码

CSR生成

图片无损放大

图片占位符

Excel拆分文件