在 Linux 系统中,有多种方法可以设置 Ruby 脚本作为服务自动启动
Systemd 是现代 Linux 发行版的默认初始化系统。要将 Ruby 脚本设置为使用 Systemd 自动启动,请按照以下步骤操作:
a. 创建一个新的 Systemd 服务单元文件。以文本编辑器创建一个新文件,例如 /etc/systemd/system/my_ruby_script.service
,并添加以下内容:
[Unit]
Description=My Ruby Script Service
After=network.target
[Service]
Type=simple
User=your_user
WorkingDirectory=/path/to/your/ruby/script
ExecStart=/usr/bin/ruby /path/to/your/ruby/script/your_script.rb
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
请根据实际情况修改 User
、WorkingDirectory
和 ExecStart
配置项。
b. 重新加载 Systemd 配置:
sudo systemctl daemon-reload
c. 启用并启动服务:
sudo systemctl enable my_ruby_script.service
sudo systemctl start my_ruby_script.service
SysVinit 是较早的 Linux 发行版的默认初始化系统。要将 Ruby 脚本设置为使用 SysVinit 自动启动,请按照以下步骤操作:
a. 创建一个新的 SysVinit 脚本。以文本编辑器创建一个新文件,例如 /etc/init.d/my_ruby_script
,并添加以下内容:
#!/bin/sh
### BEGIN INIT INFO
# Provides: my_ruby_script
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: My Ruby Script Service
# Description: My Ruby Script Service
### END INIT INFO
case "$1" in
start)
/usr/bin/ruby /path/to/your/ruby/script/your_script.rb
;;
stop)
# 在这里添加停止脚本的命令
;;
*)
echo "Usage: /etc/init.d/my_ruby_script {start|stop}"
exit 1
;;
esac
exit 0
请根据实际情况修改 ExecStart
配置项。
b. 为脚本添加可执行权限:
sudo chmod +x /etc/init.d/my_ruby_script
c. 将服务添加到默认运行级别:
sudo update-rc.d my_ruby_script defaults
d. 启动服务:
sudo service my_ruby_script start
这样,您的 Ruby 脚本将在系统启动时自动运行。请注意,这些示例仅适用于基于 Debian 和 Red Hat 的 Linux 发行版。其他发行版可能需要不同的配置。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。