Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

schedulerのlinux対応 #33

Closed
dondakeshimo opened this issue Dec 6, 2020 · 6 comments · Fixed by #88
Closed

schedulerのlinux対応 #33

dondakeshimo opened this issue Dec 6, 2020 · 6 comments · Fixed by #88
Assignees
Labels
enhancement New feature or request
Projects

Comments

@dondakeshimo
Copy link
Owner

dondakeshimo commented Dec 6, 2020

概要

schedulerのlinux対応を行う。
cronを用いる予定。

調査

cronを用いる際にcrontabに登録する方法が複数パターンある。

  1. crontab -e
  2. crontab [file]
  3. /etc/crond.d/ にファイルを追加する
  4. /var/spool/cron/crontabs/$USER/ にファイルを追加する

この中から適切なものを選ぶ必要がある。

1. crontab -e

cronファイルを手動で編集するコマンドである。
権限はユーザになるため都合が良い。
しかし、コマンド入力したらシステムデフォルトのエディタが起動するので、プログラムから使用するのは難しい。

2. crontab [file]

ファイルに記載されているcronの情報をユーザのcronに登録する。
権限はユーザとなる。
エディタが起動しないのでこちらも都合が良い。
難点としては一度登録したコマンドを消す術がない。
定期的に使用者にcronを削除してもらう必要がある?

3. /etc/cron.d/

ディレクトリ配下にファイルを追加する。
上記の課題点である古いcron情報を消すことが容易である。
ただし、 追加するたびにcronを再起動する必要があり 、root権限を使う必要がある。

4. /var/spool/cron/crontabs/$USER/

ディレクトリ配下にファイルを追加する。
こちらは上記の課題点をすべてクリアしている。
エディタは起動せず、配下のファイルを削除すれば古いものを消すことが可能、権限はユーザで十分。
ただし、ユーザが一度もcronを使用していない場合ディレクトリ自体がなく、無理やり作ってそこにファイルをおいても問題ないかはわからない。
ここにファイルを置くにはroot権限が必要な様子なので、ユーザ権限で十分ではなさそう。

$ mkdir -p /var/spool/cron/crontabs/dondakeshimo/
mkdir: cannot create directory ‘/var/spool/cron/crontabs’: Permission denied
zsh: exit 1     mkdir -p /var/spool/cron/crontabs/dondakeshimo/

$ ll /var/spool/cron/crontabs/
ls: cannot open directory '/var/spool/cron/crontabs/': Permission denied
zsh: exit 2     ls -l /var/spool/cron/crontabs/

read権限すらユーザに与えられていない。

結論

2番の crontab [file] が良さそう。
古いcronが溜まってきたらユーザに削除するように促すメッセージを送信するくらいで良いかと思われる。

参考

@dondakeshimo dondakeshimo added the enhancement New feature or request label Dec 6, 2020
@dondakeshimo dondakeshimo added this to To do in initial application via automation Dec 6, 2020
@IkuyaYamada
Copy link
Collaborator

cron でいけそうな気はする
task を画面上にポップアップ表示させるとなると、debian / rhel とかによってまた違ってきそう。

@dondakeshimo
Copy link
Owner Author

わかりみ。
#34
ポップアップはこっちでやろうかな。
正直ここのポップアップがあまりイメージできなかったのでpkg分けてやりやすくしておいた。
ポップアップはslackがあれば初期スコープからは外していいと思っている。
windowsは

儂らには救えぬものじゃ...

@dondakeshimo
Copy link
Owner Author

https://www.server-memo.net/tips/etc-crontab.html
これで行けそう
基本的にやることはlaunchdと同じかな?

@IkuyaYamada
Copy link
Collaborator

crontab に追加すればいけそうだね、
Windows はタスクスケジューラかな?w

@dondakeshimo
Copy link
Owner Author

まじで知らない概念だ笑
windowsのCLI大好きまんがPRを引っさげてきてくれることを祈ろう笑

@dondakeshimo dondakeshimo moved this from To do to In progress in initial application Dec 12, 2020
@dondakeshimo
Copy link
Owner Author

一番上のコメントに詳細を記入する

@dondakeshimo dondakeshimo self-assigned this Feb 1, 2021
@dondakeshimo dondakeshimo moved this from In progress to To do in initial application Mar 6, 2021
@dondakeshimo dondakeshimo added this to To do in features Mar 6, 2021
@dondakeshimo dondakeshimo removed this from To do in initial application Mar 6, 2021
@dondakeshimo dondakeshimo moved this from To do to In progress in features Jul 19, 2021
features automation moved this from In progress to Done Jul 22, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
features
  
Done
Development

Successfully merging a pull request may close this issue.

2 participants