7

我正在使用Fedora 20。我有一个两行 bash 脚本需要在启动结束时运行。我希望它在每次机器启动时自动运行。我怎样才能做到这一点?

我尝试“sudo crontab -e”来插入我的可执行脚本,但它总是给我错误,告诉我时间不对,无法修改文件。

4

3 回答 3

20

您可以在/usr/lib/systemd/system/<service_name>.service中创建一个 Systemd 单元文件。这是一个模板:

[Unit]
Description=<description_string>

[Service]
WorkingDirectory=<working_directory>
Type=forking
ExecStart=/bin/bash <absolute_path_to_script>
KillMode=process

[Install]
WantedBy=multi-user.target

用您的具体信息替换尖括号中的任何内容。'WantedBy=multi-user.target' 是告诉 Systemd 在每次启动时运行脚本的魔法。

在命令行上,告诉 Systemd 启用您的服务:

systemctl enable <service_name>.service

下次重新启动脚本时应该运行。日志将写入 /var/log/messages。

Fedora 有一些关于单元文件的基本文档:Systemd 单元文件

于 2015-02-09T23:05:06.160 回答
2

您可以附加/etc/rc.local它在系统启动后运行。

如果不存在,您可能必须创建它:

检查这个答案

于 2015-02-09T22:31:04.287 回答
2

查理的答案更好,但您仍然可以使用蒂亚戈的答案。

只是不要忘记如果要使用/etc/rc.local方式,请在编辑后授予此文件的执行权限:

chmod +x /etc/rc.local

于 2015-03-04T06:34:26.347 回答