起動時に起動し、私が書いたプログラムを実行するサービスを有効にするには、助けが必要です。このプログラムはフラグを通して引数を取るコマンドラインプログラムなので/などサービスconfファイルは次のとおりです。
GNU nano 4.8 ip-tracker.conf
SERVER=-server=smtp.gmail.com
PORT=-port=587
USER=-user=supdosedlyMyUsername
PASS=-password=supdosedlyMyPassword
[email protected]
[email protected]
そして/lib/systemd/myProgram.serviceこんな感じ
[Unit]
Description=Some description for the service
[Service]
Type=simple
#Restart=always
#RestartSec=5s
EnvironmentFile=/etc/mySuperProgram.conf
# HERE I GET MY VALUES FROM conf file FOR THE PROGRAM FLAGS
ExecStart=/usr/bin/ip-tracker $SERVER $PORT $USER $PASS $FROM $TO
[Install]
WantedBy=multi-user.target
サービスを実行する前に有効にしようとすると、次の問題が発生します。
sudo systemctl start myService
実行すると、コンソールにエラーは発生しません。
sudo systemctl status myService
わかりました。
ip-tracker.service - tracking your ip after system reboot
Loaded: loaded (/lib/systemd/system/ip-tracker.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Fri 2022-04-22 18:14:46 EEST; 39min ago
Main PID: 925 (code=exited, status=2)
apr 22 18:14:46 dev ip-tracker[925]: [signal SIGSEGV: segmentation violation code=0x1 addr=0x40 pc=0x642f9f]
apr 22 18:14:46 dev ip-tracker[925]: goroutine 19 [running]:
apr 22 18:14:46 dev ip-tracker[925]: main.getIp(0xc00013e060)
apr 22 18:14:46 dev ip-tracker[925]: /home/adi/Projects/ip_finder/main.go:27 +0xff
apr 22 18:14:46 dev ip-tracker[925]: main.main.func1()
apr 22 18:14:46 dev ip-tracker[925]: /home/adi/Projects/ip_finder/main.go:112 +0x26
apr 22 18:14:46 dev ip-tracker[925]: created by main.main
apr 22 18:14:46 dev ip-tracker[925]: /home/adi/Projects/ip_finder/main.go:111 +0xb1
apr 22 18:14:46 dev systemd[1]: ip-tracker.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
apr 22 18:14:46 dev systemd[1]: ip-tracker.service: Failed with result 'exit-code'.
走れば
sudo systemctl start myService
サービスが開始され、予想されるタスクを実行します。その後、サービスを有効にするコマンドを実行するとエラーメッセージは表示されませんが、ステータスを確認すると、次のようにサービスがアクティブではないと表示されます。
ip-tracker.service - tracking your ip after system reboot
Loaded: loaded (/lib/systemd/system/ip-tracker.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Fri 2022-04-22 18:54:40 EEST; 10min ago
Process: 13189 ExecStart=/usr/bin/ip-tracker $SERVER $PORT $USER $PASS $FROM $TO (code=exited, status=0/SUCCESS)
Main PID: 13189 (code=exited, status=0/SUCCESS)
apr 22 18:54:36 dev systemd[1]: Started tracking your ip after system reboot.
apr 22 18:54:37 dev ip-tracker[13189]: ISV true
apr 22 18:54:40 dev systemd[1]: ip-tracker.service: Succeeded
サービスを有効にして維持するにはどうすればよいですか?
ありがとう