如何在重启时运行 shscript

如何在重启时运行 shscript

我正在尝试在重启时运行一个脚本,该脚本可启用到远程服务器的端口转发。我编写了一个脚本,如果我在终端中运行它,它就会运行。但我无法在 crontab 重启时运行它:

@reboot sleep 120000 && sh /home/user/doit.sh

我可以在哪里看到 crontab 的错误日志?我在 crontab 中还有另一个脚本,它可以重新启动命令,并且可以正常工作。这个不行。该脚本调用 SSH 来建立隧道。谢谢。

答案1

既然你已经systemd基于系统,您可以考虑添加一个.service文件,例如/etc/systemd/system/ssh-tunnel.service包含以下内容:

[Unit]
Description=SSH tunnel
After=network.target

[Service]
Type=forking
ExecStart=/home/user/doit.sh

[Install]
WantedBy=multi-user.target

如果您的脚本没有分叉,您可以更改单元类型Type=simple。之后您只需重新加载systemd,启用该设备并尝试启动它:

systemctl daemon-reload
systemctl enable ssh-tunnel.service
systemctl start ssh-tunnel.service

如果一切正常,网络准备就绪后就会建立隧道。

相关内容