私はこれでいくつかの問題を抱えています。ブート時にairodump-ngを起動することになっているスクリプトがありますが、通常はスクリプトの最初の部分だけを実行します。
systemdサービスファイルを作成して有効にしようとしましたが、スクリプトはルートとして実行されません。
これをarch linuxとdebianの両方で試しましたが、debianではinitスクリプトルートを使用しましたが、それでもスクリプトはルートとして実行されませんでした。
私のスクリプト:
!#/bin/bash
ifconfig wlan0 down
sleep 5
airmon-ng start wlan0
sleep 5
airodump-ng mon0
exit 0
サービスファイル:
[Unit]
Description=auto start airmon
[Service]
ExecStart=~/scripts/cap.sh
Type=oneshot
User=root
[Install]
WantedBy=multi-user.target
編集*これはsystemctl statusからの出力です:
ap.service - auto start airmon
Loaded: error (Reason: Invalid argument)
Active: inactive (dead)
Jan 13 13:03:44 alarmpi systemd[1]: [/etc/systemd/system/cap.service:5] Executable path is not absolute, ignoring: ~/scripts/cap.sh
Jan 13 13:03:44 alarmpi systemd[1]: cap.service lacks ExecStart setting. Refusing.
Jan 13 13:47:08 alarmpi systemd[1]: [/etc/systemd/system/cap.service:5] Executable path is not absolute, ignoring: ~/scripts/cap.sh
Jan 13 13:47:08 alarmpi systemd[1]: cap.service lacks ExecStart setting. Refusing.
systemctl status $YOURSERVICE
(そのサービスが何であれ)の出力を質問に入れてください。そして、そのスクリプトを正しく入力したことを再確認してください。ここで入力エラーである可能性のあるかなり明白なエラーに、人々はすぐにジャンプします。
&
、行の最後に追加して(sleep
もちろん、コマンドではなく)バックグラウンドにそれらをフォークする必要があるかもしれません。