質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1189閲覧

時刻校正時の認証回避について

gobakuou

総合スコア1

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/12/05 00:55

編集2021/12/05 10:08

初めまして
ラズパイを利用して無線機の操作状態読み出し
GPSセンサーを用いて測位、PCとつないでこれらのデータのやりとり
やコントロールプログラムを作成しております。

そこでラズパイにはRTCもないこともあってGPSを用いた
時刻校正をしようと思っているのですが解決できない問題が
ありまして皆様のお知恵をかしてください

色々参考にしてなんとか作れたのですが
時刻校正をさせる際下記のダイアログが出て止まってしまいます
使用時はキーボードもマウスもつけずに画面のタッチパネルで
操作を行うのでパスワードの入力はできないのです
これを回避する方法がありましたらお願いします

ダイアログメッセージ
ネットワーク経由の時刻同期を有効もしくは無効
にするには認証が必要です

環境 ラズパイ4B VERSION 10.11 フルパッケージ
python3.7.3
GUI Tkinter

ソース

python

1def ft991_SET_GPS_TIME(): 2 global FT991 3 global GPS 4 msec10 = '10' 5 tz_ = 9 6 hour = GPS.U_gpstime[0:2] 7 minute = GPS.U_gpstime[2:4] 8 sec = GPS.U_gpstime[4:6] 9 year = GPS.U_gpsdate[0:2] 10 month = GPS.U_gpsdate[2:4] 11 day = GPS.U_gpsdate[4:6] 12 13 dt = datetime(2000 + int(year),int(month),int(day), 14 int(hour),int(minute),int(sec),int(msec10)*10000) + \ 15 timedelta(hours=tz_) 16 17 dtrmc = dt 18 #dtrmc = 20211205234512 19 gnsstime = dtrmc.strftime("%Y-%m-%d %H:%M:%S") 20 if( GPS.GPS_STABLE == 'A' ):#安定受信 21 if "Linux" in platform.system(): 22 print('if_gnsstime', gnsstime) 23 print('GPS.GPS_STABLE', GPS.GPS_STABLE) 24 subprocess.call(["/usr/bin/timedatectl", "set-ntp", "no"]) 25 subprocess.call(["/usr/bin/timedatectl", "set-time", gnsstime]) 26 subprocess.call(["/usr/bin/timedatectl","set-ntp","yes"])

以上よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jbpb0

2021/12/05 01:29

pythonのコードの一番最初の行のすぐ上に ```python だけの行を追加してください また、pythonのコードの一番最後の行のすぐ下に ``` だけの行を追加してください または、 https://teratail.storage.googleapis.com/uploads/contributed_images/56957fe805d9d7befa7dba6a98676d2b.gif を見て、そのようにしてみてください 現状、コードがとても読み辛いです 質問にコードを載せる際に上記をやってくれたら、他人がコードを読みやすくなり、コードの実行による現象確認もやりやすくなるので、回答されやすくなります
gobakuou

2021/12/05 01:35

ご指摘のとおり修正しました
jbpb0

2021/12/05 01:55 編集

なってないです ```python (pythonのコード) ``` です 手入力すると違う文字を入力したりして間違いやすいので、ここからコピペしてください
gobakuou

2021/12/05 10:08

ソース冒頭に ```python を付け加えました
jbpb0

2021/12/05 11:13 編集

コードが読みやすくなりました
jbpb0

2021/12/05 11:12

https://unix.stackexchange.com/questions/496982/restarting-systemd-service-only-as-a-specific-user/497011 の「Answers」に、パスワード無しで「systemdサービス」を制御できる方法が書かれてます https://self-development.info/%E3%80%90ubuntu%E3%80%91ntpdate%E3%81%A7%E3%81%AF%E3%81%AA%E3%81%8Ftimedatectl%E3%81%AB%E3%82%88%E3%82%8B%E6%99%82%E5%88%BB%E5%90%88%E3%82%8F%E3%81%9B/ によると「timedatectl」と「systemd-timesyncd」が連携してるとのことなので、パスワード無しで「systemdサービス」を制御できる方法が有効かもしれません
gobakuou

2021/12/06 14:29

回答ありがとうございます その後いろいろやって まだ少ししか検証できてませんが やっとできた感じです 下記の部分ですが 当初は検証中に subprocess.call(["sudo /usr/bin/timedatectl", "set-ntp", "no"]) と書いてていたのですが間違っていました subprocess.call(["sudo" , "/usr/bin/timedatectl", "set-ntp", "no"]) としたらパスワードの入力のプロンプトがでずにできるようになりました ただしここで問題がありました subprocess.call(["sudo" , "/usr/bin/timedatectl", "set-time", gnsstime]) の時刻の設定がたまにうまくいくのですが失敗してしまいました 調べてみるとNTPを無効に設定した後、数秒は手動の時刻設定ができないと ありましてNTPを無効にして10秒ほど待機させたら無事にできるように なりました 無事に何とか解決できてよかったです
jbpb0

2021/12/07 00:38 編集

それを回答に書いて、「自己解決」にしてください そうすれば、同じことに悩んでる人が検索してここにたどり着いたら、役に立ちます
guest

回答1

0

自己解決

いちおう解決しましたのでのせておきます

subprocess.call(["sudo /usr/bin/timedatectl", "set-ntp", "no"])
と書いてていたのですが間違っていました
subprocess.call(["sudo" , "/usr/bin/timedatectl", "set-ntp", "no"])
としたらパスワードの入力のプロンプトがでずにできるようになりました
ただしここで問題がありました
subprocess.call(["sudo" , "/usr/bin/timedatectl", "set-time", gnsstime])
の時刻の設定がたまにうまくいくのですが失敗してしまいました
調べてみるとNTPを無効に設定した後、数秒は手動の時刻設定ができないと
ありましてNTPを無効にして10秒ほど待機させたら無事にできるように
なりました
無事に何とか解決できてよかったです

投稿2021/12/10 13:39

gobakuou

総合スコア1

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問