Service 将具有动态实例的Upstart配置转换为Systemd服务
我有一个可以运行多个实例的Upstart服务。可以在任意组合中指定两个动态参数 有没有办法将其转换为systemd.service文件Service 将具有动态实例的Upstart配置转换为Systemd服务,service,ubuntu-16.04,systemd,upstart,ubuntu-server,Service,Ubuntu 16.04,Systemd,Upstart,Ubuntu Server,我有一个可以运行多个实例的Upstart服务。可以在任意组合中指定两个动态参数 有没有办法将其转换为systemd.service文件 start on (net-device-up and local-filesystems and runlevel [2345]) stop on runlevel [016] instance $C,$B exec [...] $C $B respawn systemd支持可用于使用单个模板启动服务的多个实例的模板。从人工系统单位中的文档: 或者,可
start on (net-device-up and local-filesystems and runlevel [2345])
stop on runlevel [016]
instance $C,$B
exec [...] $C $B
respawn
systemd支持可用于使用单个模板启动服务的多个实例的模板。从
人工系统单位中的文档:
或者,可以从runtie的模板文件实例化单元。这允许创建
单个配置文件中的多个单元。如果systemd查找单元配置文件,则
将首先在文件系统中搜索文字单位名称。如果tat不成功且单元名称包含“@”字符,systemd将查找共享相同名称但
删除实例字符串(即“@”字符和后缀之间的部分)。示例:如果
服务getty@tty3.service已请求,但未找到该名称的文件,systemd将查找
getty@.service并从该配置文件实例化服务(如果找到)
要从配置文件中引用实例字符串,可以在许多配置选项中使用特殊的“%i”说明符
在您的情况下,启动动态参数“c”和“b”的服务可能如下所示:
systemctl start myservice@b-c.service
由于systemd只支持实例名中的一个变量,因此可能需要编写包装器外壳脚本,将实例名“b-c”解包为单独的“b”和“c”值,以传递给底层服务 systemd支持使用单个模板启动多个服务实例的模板。从人工系统单位中的文档:
或者,可以从runtie的模板文件实例化单元。这允许创建
单个配置文件中的多个单元。如果systemd查找单元配置文件,则
将首先在文件系统中搜索文字单位名称。如果tat不成功且单元名称包含“@”字符,systemd将查找共享相同名称但
删除实例字符串(即“@”字符和后缀之间的部分)。示例:如果
服务getty@tty3.service已请求,但未找到该名称的文件,systemd将查找
getty@.service并从该配置文件实例化服务(如果找到)
要从配置文件中引用实例字符串,可以在许多配置选项中使用特殊的“%i”说明符
在您的情况下,启动动态参数“c”和“b”的服务可能如下所示:
systemctl start myservice@b-c.service
由于systemd只支持实例名中的一个变量,因此可能需要编写包装器外壳脚本,将实例名“b-c”解包为单独的“b”和“c”值,以传递给底层服务