我有以下 systemctl 文件。
[Unit]
Description=Airflow celery worker daemon
After=network.target postgresql.service mysql.service redis.service rabbitmq-server.service
Wants=postgresql.service mysql.service redis.service rabbitmq-server.service
[Service]
EnvironmentFile=/etc/sysconfig/airflow
User=airflow
Group=airflow
Type=simple
ExecStart=/bin/airflow worker
Restart=on-failure
RestartSec=10s
[Install]
WantedBy=multi-user.target
运行良好。但是,例如,当我启动机器时,我必须提供不同的名称
ExecStart=/bin/airflow worker -q "nameOfWorker"
但是,“nameOfWorker”是在我根据要求启动实例时决定的。我正在从已有 systemctl 文件的图像启动实例。
我可以使用 ssh 进入机器
ssh -i "opencpu-fin.pem" ubuntu@***-**-***-***-***.**-****-2.compute.amazonaws.com in shell script.
接下来我应该做什么?任何指导都会被应用
答案1
也许有办法。当您部署这些文件时,您也许可以使用sed
.因此您的基本配置文件可能包含以下几行:
...
Type=simple
ExecStart=/bin/airflow worker -q "nameOfWorker"
Restart=on-failure
...
您可以有一个脚本将字符串“nameOfWorker”切换为预期名称:
sed 's/nameOfWorker/${intendedName}/' YourBaseSystemd.service > NewlyMade.service
因此,您可以在配置新机器时启动这行代码。