我已经创建了一个服务文件,但这是我的第一个。
我想知道如果我将一个写得不好的服务放入/etc/systemd/system
目录中会发生什么。
下次我的系统可能不会重新启动吗?
...我想在把它放在那里之前测试一下。
[Unit]
Description=ecoemploi backend métier
After=network-online.target
[Service]
Type=simple
User=%i
Restart=no
ExecStart=/home/lebihan/dev/Java/comptes-france/metier-et-gestion/ApplicationMetierEtGestion/java \
--add-exports java.base/sun.nio.ch=ALL-UNNAMED \
--add-opens java.base/java.util=ALL-UNNAMED \
--add-opens java.base/java.nio=ALL-UNNAMED \
--add-opens java.base/java.lang=ALL-UNNAMED \
--add-opens java.base/java.lang.invoke=ALL-UNNAMED \
-jar target/application-metier-et-gestion.jar
# Configures the time to wait before service is stopped forcefully.
TimeoutStopSec=300
[Install]
WantedBy=multi-user.target
我还没有找到从当前的开发目录systemctl
启动我的选项ecoemploi-back-metier.service
,而不是在其/etc/systemd/service
路径中搜索它。
我愿意做的测试的方式是什么?
答案1
只需将它们放入/etc/systemd/system
;单元文件放在那里不要自动成为引导过程的一部分——只有当它们使用“安装”到例如 multi-user.target 时才会发生systemctl enable
。
您可以将自定义单位放在那里并手动设置systemctl start
它们,没有“启用”设备在启动时启动。
一般来说,一个简单地启动失败的单元不会破坏启动过程,除非你让其他一些重要的单元依赖于它。如果您这样做,您可以使用systemd.mask=
引导选项(内核命令行选项)使 systemd 在单次引导时忽略特定单元。
如果您想安全,可以将单元放置在内存中的位置,该位置在重新启动后不会保留。/run/systemd/system