Systemd守护进程
场景docsify 启动的服务进程经常挂掉,使用 Systemd 设置守护进程,崩溃或退出后自动重启服务。
Systemd和systemctl的关系Systemd 是 Linux 的一个服务管理器,用于启动、停止、管理和监视 Linux 上的各种服务和守护进程;而 systemctl 是与 Systemd 集成的用于控制和管理服务的命令行工具。
systemctl设置守护进程
创建 Systemd 服务单元文件:在 /etc/systemd/system/ 目录下创建一个以 .service 结尾的文件,比如 docsify.service。
1sudo vim /etc/systemd/system/docsify.service
添加以下内容:
123456789101112131415[Unit]# 服务的描述。Description=docsifyAfter=network.target[Service]# 服务运行的用户名。User=root# 启动命令ExecStart=/usr/local/bin/docsify serve /root/docs# 设置服务在崩溃或退出 ...
Shell脚本解释器
sh script.sh和./script.sh的区别
sh script.sh 是使用系统上的默认Shell解释器来执行脚本文件,忽略脚本中的 shebang 行(例如 #!/usr/bin/expect -f)。
一般在 Linux 系统中,默认的 /usr/bin/sh 默认指向 /usr/bin/bash 的符号链接。
./script.sh 是通过脚本中的 shebang 行(一般都是 #! 开头的第一行)指定的解释器来运行脚本。
指定解释器执行shell脚本的方式假设希望指定 expect 解释器执行脚本,方式如下:
在 shell 脚本中的 shebang 行(第一行)指定解释器。
1#!/usr/bin/expect -f
使用 ./script.sh 的方式运行脚本即可。
使用 expect 命令来执行脚本,这种方式是直接指定 expect 解释器来执行脚本,忽略脚本中的 shebang 行。
1expect script.sh