Amazon Linux2 で systemD を使用する方法
Q&A
Closed
・行いたい事
「.serviceを手動で起動しSQLコードを実行する事」
timerを使用して自動的にDBを操作出来るようにしたいのですが
順序を追って確認している最中に以下の様になり、色々調べてもこれ以上進めてない状態です...
[test_user@ip-0-0-0-0 system]$ sudo systemctl start foo
Failed to start foo.service: Unit is not loaded properly: Invalid argument.
See system logs and 'systemctl status foo.service' for details.
[test_user@ip-0-0-0-0 system]$ systemctl status foo.service
● foo.service - Run Move To Backup Service
Loaded: error (Reason: Invalid argument)
Active: inactive (dead)
環境は
・Amazon Linux2
・MySQL Ver15.1 Distrub 5.5.64-MariaDB, for Linux (x86_64) using readline 5.1
以下、行っている事やServiceの中身です。
Console.
権限
[test_user@ip-0-0-0-0 system]$ sudo chmod 0755 /home/test_user/etc/systemd/system/test.sql
foo.serviceの作成
[test_user@ip-0-0-0-0 system]$ sudo nano /etc/systemd/system/foo.service
作成したServiceの位置確認
[test_user@ip-0-0-0-0 system]$ cd /etc/systemd/system
[test_user@ip-0-0-0-0 system]$ ls
foo.service ※他にも沢山の.target.wants等がありました。
状態確認
[test_user@ip-0-0-0-0 system]$ sudo systemctl list-unit-files --type=service | grep foo
foo.service static
[test_user@ip-0-0-0-0 system]$ pwd
/etc/systemd/system
自動起動ON
[test_user@ip-0-0-0-0 system]$ sudo systemctl enable foo
起動
[test_user@ip-0-0-0-0 system]$ sudo systemctl start foo
Failed to start foo.service: Unit is not loaded properly: Invalid argument.
See system logs and 'systemctl status foo.service' for details.
[test_user@ip-0-0-0-0 system]$ systemctl status foo.service
● foo.service - Run Move To Backup Service
Loaded: error (Reason: Invalid argument)
Active: inactive (dead)
foo.service
[Unit]
Description= Run Move To Backup Service
[Service]
Type=oneshot
ExecStart=mysql -h testdb.test.ap-test-1.rds.amazonaws.com -usertest -passtest < /home/test_user/etc/systemd/system/test.sql
という、内容を行いました。
下の様にMySqlを直接触りに行く方法では正しく実行できております。
console.
mysql -h testdb.test.ap-test-1.rds.amazonaws.com -usertest -passtest < /home/test_user/etc/systemd/system/test.sql
Linux初心者なので足りない情報が有る場合はご指摘下さい。よろしくお願いいたします。
0