タグ付けされた質問 「systemd」

systemdは、LinuxのSystemVおよびUpstart initデーモンの代替アプローチです。これは、サービスの依存関係を表現するためのより良いフレームワークを提供し、システム起動時により多くの作業を並行して実行できるようにし、シェルのオーバーヘッドを減らすことを目的としています。

3
Systemd Unitファイルにパスワードを渡す一般的な方法はありますか?
systemdユニットファイルを使用してサービスを開始したいと思います。このサービスを開始するにはパスワードが必要です。パスワードは平文でsystemdユニットファイルに保存したくないのです。また、このパスワードをインタラクティブに提供したくありません。 このための通常のスクリプトを作成している場合は、制限付きのアクセス許可(400または600)でrootが所有するファイルに資格情報を保存し、スクリプトの一部としてファイルを読み取ります。これを行う特定のsystemdスタイルの方法はありますか、それとも通常のシェルスクリプトと同じプロセスに従うだけですか?

2
systemdサービスのグループ化
私が.service取り組んでいるシステムを構成するさまざまな部分について、約6のファイルを作成しました。システム全体を少しずつ起動できると便利ですが、への1回の呼び出しでシステム全体を起動する単一のユニットが欲しいsystemctlです。 これを行う最良の方法は何ですか?
10 systemd 

3
systemdウェイクアップ後にユーザースクリプトを実行する方法
私のdebian jessieデスクトップボックスが(新しい光沢のあるsystemdを介して)スリープから復帰すると、マウスの設定がデフォルトに戻り、カスタマイズがリセットされました xinput set-prop 12 'Device Accel Constant Deceleration' 2.5 ログイン時に実行されます。 ウェイクアップ時に任意のユーザースクリプトを実行するにはどうすればよいですか?(ユーザーがXセッションの所有者であると想定します) 私が思い出す限り、以下はsystemdセットアップで行った唯一のカスタマイズです(はい、それは任意のユーザーには機能しないため完全に間違っていることはわかっていますが、その方法はまだわかりません) ...これは多少関連しています) さらに、現在X画面を使用しているユーザーとして、ウェイクアップ前に任意のユーザースクリプトを実行するにはどうすればよいですか? cat /etc/systemd/system/i3lock.service #systemctl enable i3lock.service [Unit] Description=i3lock Before=sleep.target [Service] User=fommil Type=forking Environment=DISPLAY=:0 ExecStart=/usr/bin/i3lock -c 000000 [Install] WantedBy=sleep.target
10 systemd  suspend 

2
systemdスクリプトのフォーク
systemdサービスでforkを処理したい(私のファイルはそれ自体ではforkを処理しないので、systemdに依存して処理しています) 私の.serviceファイル: [Unit] Description=swamp services management service After=syslog.target [Service] Type=forking ExecStart=/usr/bin/swamp [Install] WantedBy=multi-user.target 質問 Type=forking私が達成しようとしていることを十分に指定していますか?または、サービスがフォーク/デーモン化を処理することを実際にアップスタートに通知するアップスタートでフォークを期待するのと似ていますか(私が正しく理解していれば、確信がありません。
10 systemd 

5
systemd / initがない場合(たとえば、init = / bin / bashを使用する)に電源をオフにする方法は?
poweroffDBusを介してsystemdに接続できないと文句を言います(もちろん、生きていません)。私はにsync続いてkill $$、pid 1が死ぬとカーネルの電源が切れるのではないかと思ったが、カーネルパニックが発生した。次に、電源ボタンを押し続けて電源を強制的にオフにしました。 このシナリオで電源を切る最も適切な方法は何ですか?

4
Fedora 25とポート111でリッスンしているものをすべて無効にする
私はFedora 25 x86_64スタンドアロンワークステーションを持っています。何かがポート111でリッスンしています(nmapスキャンで識別されます): $ sudo lsof -i :111 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME systemd 1 root 36u IPv4 15170 0t0 TCP *:sunrpc (LISTEN) systemd 1 root 37u IPv4 15171 0t0 UDP *:sunrpc systemd 1 root 38u IPv6 15172 0t0 TCP *:sunrpc (LISTEN) systemd 1 root 39u …

1
systemd cgroupsを持つすべてのユーザーにデフォルトのリソース制限を設定します
次のようにユーザーのメモリ制限を設定できます。 systemctl set-property user-UID.slice MemoryHigh=24G これをすべてのユーザーに適用する方法はありますか?すべてのユーザープロセスの合計24Gではなく、各ユーザーが24Gを取得するようにしたいと思います(これをuser.slice直接設定した結果だと思います)

1
外部ディスプレイが接続されている場合でも、蓋が閉じていると一時停止できません
私のラップトップにはGnome 3.16.4を搭載したFedora 22が搭載されています。通常、ふたを閉じると一時停止します。ただし、外部ディスプレイが(VGAを介して)接続されている場合、蓋を閉じると、gnomeデスクトップは外部ディスプレイに転送されます。 ただし、外部ディスプレイが接続されている場合でも、ラップトップを一時停止してください。これが私がチェックして試したものです: ふたを開いたり閉じたりするときは、でsystemd-logindわかるように操作を記録しjournalctl -b -u systemd-logindます。 Dec 09 08:39:39 workstation systemd-logind[980]: Lid closed. Dec 09 08:39:47 workstation systemd-logind[980]: Lid opened. 私は/etc/systemd/logind.conf次のように構成しました: [Login] #NAutoVTs=6 #ReserveVT=6 #KillUserProcesses=no #KillOnlyUsers= #KillExcludeUsers=root #InhibitDelayMaxSec=5 #HandlePowerKey=poweroff #HandleSuspendKey=suspend #HandleHibernateKey=hibernate #HandleLidSwitch=suspend HandleLidSwitchDocked=suspend #PowerKeyIgnoreInhibited=no #SuspendKeyIgnoreInhibited=no #HibernateKeyIgnoreInhibited=no #LidSwitchIgnoreInhibited=yes #IdleAction=ignore #IdleActionSec=30min #RuntimeDirectorySize=10% #RemoveIPC=yes 具体的には、HandleLidSwitchDocked=ignore行をコメント化してに変更しましたsuspend。そして、残りは(systemdによって)デフォルトであると言われています。しかし、再起動後、機能しませんでした。 私のビデオカードは「Intel Corporation Broadwell-U Integrated Graphics」です(出力はlspci)。それはnvidiaではないので、このスレッドで説明されているバグの影響は受けていないと思いますか? では、外部ディスプレイが接続されている場合でも、Fedora …

1
autofsがsystemdで起動した後にサービスを開始するように設定する方法
systemdを使用してRHEL7マシンにライセンスサーバーを設定する必要があります。ライセンスサーバーは起動時に起動し、ネットワーク上の共有ディスクからライセンスファイルをロードする必要があります。したがって、ネットワークが開始し、autofsがNFSディスクのマウントを完了するのを待つ必要があります。私はこのサービスファイルを持っています: [Unit] Description=Flexnet license server Wants=network.target network-online.target autofs.service After=network.target network-online.target autofs.service [Service] Type=forking User=licenseuser Group=devusers ExecStart=/soft/flexera/glnxa64/lmgrd -c /soft/licenses/license.dat -L /home/licenseuser/license.log # Give a reasonable amount of time for the server to start up/shut down TimeoutSec=300 [Install] WantedBy=multi-user.target サービスは、autofsの開始後、autofsがすべてのディスクをマウントする前に開始されるため、ライセンスサーバーを開始できません。
9 rhel  systemd 

1
CentOS 7の起動が速すぎて、cronスクリプトの実行時にネットワークの準備ができていません
CentOS 6.5から7.0にアップグレードしたばかりですsystemdが、おそらく新しいもので問題が発生しているので、あまり満足していません。それは単に起動が速すぎて、プロセスを非同期に起動し、サービスの依存関係を台無しにしているだけのようです。 たとえばcrond、再起動後にトリガーされるいくつかのスクリプトのセットアップがあります。 @reboot /root/scripts/check_gmail.sh @reboot /root/scripts/start_gps_listener.sh これにより、あらゆる種類の奇妙なエラーが発生します(そのうちの1つだけが表示されます)。 Warning: stream_socket_client(): unable to connect to tcp://192.168.20.4:4001 (Network is unreachable) in /root/scripts/check_gmail.php on line 137 ERROR: Network is unreachable (101) 上記では、TCPソケットに書き込んでいます。crondネットワークがとして正しく初期化される前に開始されることは、私にはかなり明らかですnetwork is unreachable。 ApacheとMySQL(MariaDB)でも同じことが言えます。MySQLの起動は非常に遅い(大量のデータ)つまりcrond、スクリプトが呼び出されているときにMySQLデータベースが実行されていないため、Apacheと多くの起動スクリプトの両方が失敗しています。 依存関係をセットアップしようとしましたが、運がありませんでした。にサービスを追加networkしmysqlました[Unit](で確認できますsystemctl list-dependencies)。理想的には、すべてのサービスはMySQLが稼働するまで待機します。 vi /lib/systemd/system/httpd.service [Unit] Description=The Apache HTTP Server After=network.target remote-fs.target nss-lookup.target network.service mysql.service vi /lib/systemd/system/crond.service [Unit] Description=Command …
9 centos  systemd 

2
systemd Dockerコンテナーで環境変数を継承する
systemdを実行しているDockerコンテナーがあります。その下のアプリケーションに環境変数を渡したいのですが。 Docker内から(/sbin/initコマンドラインとして)systemdを起動すると、Dockerは変数をsystemdに公開しますが、子サービスには公開しません。systemd.setenv=...コマンドラインに追加すると、変数が渡されます。よりクリーンな解決策を探しています。 /sbin/init開始されたアプリケーションに渡された環境変数を公開するにはどうすればよいですか? % docker run -v /sys/fs/cgroup:/sys/fs/cgroup:ro --privileged -ti \ -e VAR1=1 motiejus/systemd_fedora20 \ init systemd.setenv=VAR2=2 ... Welcome to Fedora 20 (Heisenbug)! ... [ OK ] Reached target Multi-User System. [root@740690365eb0 ~]# env | grep VAR VAR2=2 VAR1=1コマンドの実行中に表示されることを期待しています。 言い換えれば、systemdはそれに渡された変数を、それが開始する子に渡すことができますか? Dockerfileについては、githubリポジトリを参照してください。

2
systemctlを使用するとnamedが起動しない
Fedora 18 Raspberry Piスピンでsystemdを使い始めるために名前を付けるのに問題があります。それが開始し、数分後にタイムアウトが発生して失敗します。named.serviceのコマンドを手動で実行すると、namedは問題なく起動します。systemctlが探しているタイムアウトや、それが呼び出されている場所がわかりません。systemctl、systemd、その他のマニュアルページを読んだので、引き続き調査しますが、誰かがポインタを持っているなら、それは素晴らしいことです。 systemctl status named.service 出力: named.service - Berkeley Internet Name Domain (DNS) Loaded: loaded (/usr/lib/systemd/system/named.service; disabled) Active: failed (Result: timeout) since Tue 2013-01-29 14:36:41 EST; 35min ago Process: 4189 ExecStart=/usr/sbin/named -u named $OPTIONS (code=exited, status=0/SUCCESS) Process: 4186 ExecStartPre=/usr/sbin/named-checkconf -z /etc/named.conf (code=exited, status=0/SUCCESS) Process: 4183 ExecStartPre=/usr/libexec/generate-rndc-key.sh (code=exited, status=0/SUCCESS) …

2
特定のユーザーとしてのみsystemdサービスを再起動しますか?
基本的に機能するsystemdサービスをいくつか作成しました。 ロケーション: /etc/systemd/system/multi-user.target.wants/publicapi.service コンテンツ: [Unit] Description=public api startup script [Service] Type=oneshot RemainAfterExit=yes EnvironmentFile=-/etc/environment WorkingDirectory=/home/techops ExecStart=/home/techops/publicapi start ExecStop=/home/techops/publicapi stop [Install] WantedBy=multi-user.target コマンドラインでtechopsユーザーとしてサービスを再起動しようとすると、次の出力が表示されます。 ==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units === Authentication is required to start 'publicapi.service'. Multiple identities can be used for authentication: 1. Myself,,, (defaultuser) 2. ,,, (techops) Choose identity to authenticate as …

1
systemdと端末起動プログラムの違い
この違いがプログラム間で何であるかについて私は興味があります。systemctlで有効にしたときにsystemdで起動した場合と/etc/rc.local、CLI で起動した場合やCLI で起動した場合。 たとえば、私は最近、ラズベリーパイにshairport-syncを使用していました。最初に、sudo systemctl enabled shairport-syncを使用してshairport-syncを開始するように設定しました。 後で、内部の機能を使用して、shairport-sync接続するデバイスにスクリプトを実行したりポストしたりしました。 驚いたことに、スクリプトが実行されshairport-syncたときkill arecord、aplay しかし、私はスクリプトが実行され、殺された端子を介してスクリプトを実行しますarecordとaplay。 さらに混乱させるために、私shairport-syncはそれを強制終了し、ターミナルを介して起動して、何が起こっているかの出力を確認しました。私はそのようにしたときのスクリプトは、デバイスが接続されて殺されたときに、私は期待通りに機能arecordしてaplay。だから、修正として私は無効shairport-syncにsysmtectlしてで実行するように設定する/etc/rc.localクイックフィックスとして。その後、reboot期待通りに機能しました。 これにより、の一部として実行されるsystemdプログラムと、/etc/rc.localまたはCLIを介して開始されたときに実行されるプログラムには、いくつかの違いがあると私は思います。 なぜこれが起こるのですか?これは、実行レベルが異なるためですか?ダークマジック? デバイスが接続するときに実行されるスクリプトはshairport-sync次のとおりです。shairportstart.sh #!/bin/sh /usr/bin/sudo /bin/pkill arecord if [ $(date +%H) -ge "18" -o $(date +%H) -le "7" ]; then /usr/bin/amixer set Speaker 40% else /usr/bin/amixer set Speaker 100% fi /home/pi/shScripts/shairportfade.sh& exit 0 フェードスクリプトは次のとおりです。 shairportfade.sh #!/bin/sh /usr/bin/amixer set …

2
systemdを使用して、ファイルの存在に基づいてサービスを開始および停止できますか?
これまでの私の設定は: foo.path [Path] PathExists=/tmp/foo.path [Install] WantedBy=multi.user.target foo.service [Unit] Description=Matt Test BindsTo=foo.path [Service] ExecStart=/bin/sh /home/mpekar/bin/foo.sh PIDFile=/run/foo.pid これは起動時に問題なく機能しますが、/ tmp / foo.pathが削除されてもfoo.serviceは強制終了されません。systemdにこれを実行させる方法はありますか、それともそのジョブに適したツールではありませんか?
9 systemd 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.