最新記事

systemdサービスを使用してデスクトップ通知を開始するノードアプリケーションを実行する方法
linux
systemd
notifications

systemdサービスを使用してデスクトップ通知を開始するノードアプリケーションを実行する方法

以前に検索した結果、これはできないという回答が出たようですが、私がLinuxの専門家ではないので、それでも聞いてみたかったです。毎秒デスクトップ通知を開始するnodejsで作成された小さなアプリがあります。 import notifier from 'node-notifier' import {CronJob} from 'cron'; /* Create a cron job that send a desktop notification every second */ const job = new CronJob('* * * * * *', () => { notifier.notify({ title: 'My notification', message: 'Hello, there!', }); }, null, true, 'America/Los_Angeles'); job.start() 私が走るとき、これはうまくいきますnpm run start。 systemdサービスを使用して実行したいと思います。 [Unit] Description=should run node app which launch a desktop notification After=network.target [Service] Environment="DISPLAY=:0" "XAUTHORITY=/home/myuser/.Xauthority" Type=simple User=myuser ExecStart=/home/myuser/.nvm/versions/node/v16.13.1/bin/node /home/myuser/notify_send/notify_node/build/index.js Restart=on-failure [Install] WantedBy=multi-user.target サービスを開始してから数秒後、ステータスコマンドは次のように表示されます。 ● runjs.service - should run node app which launch a desktop notification Loaded: loaded (/etc/systemd/system/runjs.service; disabled; vendor preset: enabled) Active: active (running) since Sun 2022-12-04 17:47:40 CET; 22s ago Main PID: 5606 (node) Tasks: 20 (limit: 18651) Memory: 18.1M CGroup: /system.slice/runjs.service ├─5606 /home/myuser/.nvm/versions/node/v16.13.1/bin/node /home/myuser/notify_send/notify_node/build/index.js ├─5633 /bin/sh -c notify-send "My notification" "Hello, there!" --expire-time "10000" ├─5634 notify-send My notification Hello, there! --expire-time 10000 ├─5639 dbus-launch --autolaunch=017e96ffe51b466384d899f21cbecdc5 --binary-syntax --close-stderr ├─5640 /usr/bin/dbus-daemon --syslog-only --fork --print-pid 5 --print-address 7 --session ├─5642 /usr/bin/dbus-daemon --syslog-only --fork --print-pid 5 --print-address 7 --session └─5643 /usr/bin/plasma_waitforname org.freedesktop.Notifications dic 04 17:47:40 slimbook systemd[1]: Started should run node app which launch a desktop notification. dic 04 17:48:00 slimbook dbus-daemon[5640]: [session uid=1000 pid=5638] AppArmor D-Bus mediation is enabled dic 04 17:48:00 slimbook dbus-daemon[5640]: [session uid=1000 pid=5638] Activating service name='org.freedesktop.Notifications' requested by ':1.0> ただし、サービスの実行中はデスクトップ通知は開始されません。 よろしくお願いします。 編集する @edgar-magallonが提案した変更を適用したら、追加情報を追加してください。 $ sudo systemctl status runjs.service ● runjs.service - should run node app which launch a desktop notification Loaded: loaded (/etc/systemd/system/runjs.service; disabled; vendor preset: enabled) Active: failed (Result: exit-code) since Sat 2022-12-24 00:26:59 CET; 4s ago Process: 3281 ExecStart=/home/user/notify_send/notify_node/build/runApp (code=exited, status=127) Main PID: 3281 (code=exited, status=127) dic 24 00:26:59 slimbook systemd[1]: runjs.service: Scheduled restart job, restart counter is at 5. dic 24 00:26:59 slimbook systemd[1]: Stopped should run node app which launch a desktop notification. dic 24 00:26:59 slimbook systemd[1]: runjs.service: Start request repeated too quickly. dic 24 00:26:59 slimbook systemd[1]: runjs.service: Failed with result 'exit-code'. dic 24 00:26:59 slimbook systemd[1]: Failed to start should run node app which launch a desktop notification. そしてログ: $ sudo journalctl -xeu runjs.service -- Support: http://www.ubuntu.com/support -- Support: http://www.ubuntu.com/support -- -- The unit runjs.service has entered the 'failed' state with result 'exit-code'. dic 24 00:26:59 slimbook systemd[1]: runjs.service: Scheduled restart job, restart counter is at 5. -- Subject: Automatic restarting of a unit has been scheduled -- Defined-By: systemd -- Support: http://www.ubuntu.com/support -- -- Automatic restarting of the unit runjs.service has been scheduled, as the result for -- the configured Restart= setting for the unit. dic 24 00:26:59 slimbook systemd[1]: Stopped should run node app which launch a desktop notification. -- Subject: A stop job for unit runjs.service has finished -- Defined-By: systemd -- Support: http://www.ubuntu.com/support -- -- A stop job for unit runjs.service has finished. -- -- The job identifier is 2072 and the job result is done. dic 24 00:26:59 slimbook systemd[1]: runjs.service: Start request repeated too quickly. dic 24 00:26:59 slimbook systemd[1]: runjs.service: Failed with result 'exit-code'. -- Subject: Unit failed -- Defined-By: systemd -- Support: http://www.ubuntu.com/support -- -- The unit runjs.service has entered the 'failed' state with result 'exit-code'. dic 24 00:26:59 slimbook systemd[1]: Failed to start should run node app which launch a desktop notification. -- Subject: A start job for unit runjs.service has failed -- Defined-By: systemd -- Support: http://www.ubuntu.com/support -- -- A start job for unit runjs.service has finished with a failure. -- -- The job identifier is 2072 and the job result is failed. 私は何が間違っていましたか?

Admin

「systemctl stop」と「systemctl Kill」の違いは何ですか?
systemd

「systemctl stop」と「systemctl Kill」の違いは何ですか?

systemctl stopこれらとそしての違いは何ですかsystemctl kill? systemctl kill-9(SIGTERM)の代わりに(SIGKILL)などのプロセスへのカスタム信号送信をサポートしています-15。それでは、常に(SIGTERM)を送信するsystemctl killより一般的なバージョンの唯一の違いは何ですか?systemctl stopsystemctl stop-15 たとえば、systemctl stop()のような結果は次のようになりますsystemctl kill。ssh.servicesshd systemctl stop: $ systemctl stop sshd $ systemctl status sshd ● ssh.service - OpenBSD Secure Shell server Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled) Active: inactive (dead) since Mon 2021-11-08 09:09:32 CET; 1s ago Docs: man:sshd(8) man:sshd_config(5) Process: 2086153 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS) Process: 2086154 ExecStart=/usr/sbin/sshd -D $SSHD_OPTS (code=exited, status=0/SUCCESS) Main PID: 2086154 (code=exited, status=0/SUCCESS) systemctl kill: $ systemctl kill sshd $ systemctl status sshd ● ssh.service - OpenBSD Secure Shell server Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled) Active: inactive (dead) since Mon 2021-11-08 09:10:15 CET; 1s ago Docs: man:sshd(8) man:sshd_config(5) Process: 2086486 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS) Process: 2086487 ExecStart=/usr/sbin/sshd -D $SSHD_OPTS (code=exited, status=0/SUCCESS) Main PID: 2086487 (code=exited, status=0/SUCCESS)

Admin

システムの「エイリアス」アクティブ状態
linux
systemd

システムの「エイリアス」アクティブ状態

「エイリアス」状態のユニットファイルの例を挙げることができる人はいますか? ドキュメントには、「名前はエイリアス(他のユニットファイルへのシンボリックリンク)です」と記載されています。 しかし、私が理解しているように、ユニットファイルがアクティブではなくシンボリックリンクである場合、これはsystemdの範囲外のファイルを指すシンボリックリンクであるか(したがって「リンクされた」状態)、ファイルを指すシンボリックリンクです。 systemd内のファイルに到達しました(したがって「間接」状態)。 編集:より具体的には、次のサンプルサービスがあるとします。 $ cat myservice.sh while true do echo "Looping" sleep 30 done そして、ユニットファイルは次のようになります。 $ cat myservice.service [Unit] Description=Example Service. [Service] Type=simple ExecStart=/bin/bash ~/myservice.sh [Install] WantedBy=multi-user.target myservice.service出力などの単位のエイリアスを作成したい場合はmyalias.service -> myservice.serviceどうすればよいですか?systemctl is-enabled myaliasalias

Admin

systemdを使用してUSBドングルを切断した回復
shell-script
systemd
usb-device
systemctl
mqtt

systemdを使用してUSBドングルを切断した回復

これがこの質問を投稿するのに適した場所ではない場合は、そう言ってください。 私はUSBドングルデバイス(アンテナ付きのCC2531、アンテナモデルを忘れた)とLinuxシステム(KDEネオンユーザーバージョン5.19、Ubuntu 18.04ベース)でzigbee2mqtt(Zigbeeエージェント)を実行しています。時にはzigbee2mqttが動作を停止し、正常に再実行するには、デバイスの所有権を変更する必要があります(chownを使用)。だから私はそれをスクリプトに入れました。 ~/my_services/zigbee2mqtt_service $ cat z2m.sh sudo chown gal /dev/ttyACM0 cd /opt/zigbee2mqtt npm start そして、スクリプトを実行するためにsystemdでサービスを作成します。 ~/my_services/zigbee2mqtt_service $ systemctl cat zigbee2mqtt.service # /etc/systemd/system/zigbee2mqtt.service [Unit] Description=zigbee2mqtt After=network.target [Service] # ExecStart=/usr/local/bin/npm start # WorkingDirectory=/opt/zigbee2mqtt ExecStart=/home/gal/my_services/zigbee2mqtt_service/z2m.sh StandardOutput=inherit StandardError=inherit Restart=always User=gal [Install] WantedBy=multi-user.target 以前は動作していましたが、何らかの理由で現在はサービスが開始されていません。有効にしてデーモンを手動で起動して再ロードしてみました。 z2m.shスクリプトを手動で実行すると正常に実行されますが、リモートシステムで作業しているため、切断する必要があるため、zigbee2mqttが停止します。 何を直すべきか、または「失効した所有権」を回復する他の方法を指摘することができれば良いでしょう。 編集:サービスの状態を確認したときに得られるものは次のとおりです。 ~ $ systemctl status zigbee2mqtt.service ● zigbee2mqtt.service - zigbee2mqtt Loaded: loaded (/etc/systemd/system/zigbee2mqtt.service; enabled; vendor pres Active: failed (Result: exit-code) since Mon 2020-07-20 11:00:57 IDT; 2 days Process: 4059 ExecStart=/home/gal/my_services/zigbee2mqtt_service/z2m.sh (code Main PID: 4059 (code=exited, status=203/EXEC) Jul 20 11:00:57 phoenix systemd[1]: zigbee2mqtt.service: Service hold-off time o Jul 20 11:00:57 phoenix systemd[1]: zigbee2mqtt.service: Scheduled restart job, Jul 20 11:00:57 phoenix systemd[1]: Stopped zigbee2mqtt. Jul 20 11:00:57 phoenix systemd[1]: zigbee2mqtt.service: Start request repeated Jul 20 11:00:57 phoenix systemd[1]: zigbee2mqtt.service: Failed with result 'exi Jul 20 11:00:57 phoenix systemd[1]: Failed to start zigbee2mqtt. lines 1-12/12 (END)

Admin

Kubuntu 20.04 終了/再起動が「Waiting for process: crond」で停止
systemd
shutdown
kubuntu

Kubuntu 20.04 終了/再起動が「Waiting for process: crond」で停止

私はKubuntu 20.04を実行しています。終了または再開すると、4番のうち3番は次の場所で中断されます。 Reached target Reboot. systemd-shutdown[1]: Waiting for process: crond 私はインターネット検索にかなりの時間を費やしましたが、なぜこれが完了したのかわかりません。頻繁な再起動を非常に遅くします。同じ問題を説明するスレッドを見つけました。Ubuntuフォーラムしかし、彼らは解決策を投稿できませんでした(ただ解決しただけです)。 どんな助けや情報にも感謝します。

Admin

システム出力で「ステータス=10/n/a」とはどういう意味ですか?
systemd
services
amazon-ec2
amazon-linux

システム出力で「ステータス=10/n/a」とはどういう意味ですか?

Amazon Linux 2でアプリケーションをサービスとして管理できる.serviceようにファイルを開発しています。systemdただし、と入力すると、systemctl start my-new-serviceログに次のエラーが報告されます。 Mar 24 hh:mm:ss the.host.name systemd[1]: my-new-service.service: main process exited, code=exited, status=10/n/a status=10/n/aこのエラーメッセージはどういう意味ですか? さまざまな可能なステータスコードを解釈する方法を説明し、このフォーラムの要約が長すぎる場合は、説明全体へのリンクを提供してください。

Admin

ファイルシステムのマウント前にサービスが開始されます。
systemd
mount
lvm
usb-drive

ファイルシステムのマウント前にサービスが開始されます。

システムエキスパートの皆さん、 私はCubietruck A20システムを持っており、Armbianカーネルは4.19.62で、残りのパッケージはDebian 10 Buster armhfからインポートされ、systemdは241-7〜deb10u2です。 ブートmicroSDカードの摩耗を防ぐために、USB接続HDD(WD5000BMVW、Western Digital Elements / My Passport(USB))にLVM2ボリュームグループを作成し、このVGのLVに複数のext4ファイルシステムを作成して保存/ var / lib、 /var/log、一部/var/spool/*、/var/cacheなど これらのファイルシステムはすべて/ etc / fstabに正しく文書化されており、システムの起動時にマウントされます。 ただし、一部のサービスは、起動前にインストールされるこれらのファイルシステムに依存します。部品はバインディング9(ネームド)とイカ(squid3)です。次の再起動後、これらのサービスは、そのファイルシステムがマウントされアクセスされたときよりも早く開始されたことがわかりました。 だから、いくつかのシステムの専門家に尋ね、彼らは「systemctl edit」を実行し、これらのサービスに.mount依存関係を追加してください」と言いました。次の内容でバインド9とイカ用のオーバーレイファイルを追加しました。 # /etc/systemd/system/squid.service.d/override.conf [Unit] Requires=var-log.mount var-spool-squid3.mount After=var-log.mount var-spool-squid3.mount そして # /etc/systemd/system/bind9.service.d/override.conf [Unit] Requires=var-lib.mount var-cache.mount After=var-lib.mount var-cache.mount これは役に立ちません。それ以外の場合は質問しません。 "systemctl list-units"出力からこれらの.mount名を取得し、RequiresとAfterを個別にそして一緒に試したことを確認できます。 "journalctl -b"では、Binding 9とsquid .servicesが非常に早く起動し、わずか数秒後にUSBブロックデバイス(sda)が見つかり、lvm pvscanを実行してLVが有効化されマウントされていることを非常に明確に知ることができます。 。だから私はbin9&squid .serviceを起動しようとしたときにこれらの.mountユニットが存在しないと仮定します。 だから私の質問は、どのように適切にルートFSからユニットファイルを読み取り、依存関係でソートされてから数秒後にいくつかの強制起動時にファイルシステムが見つかったときにこの依存関係を指定しますか? 役に立つ回答ありがとうございます。

Admin

vsftpdサービスが開始されておらず、vsftpd.serviceメッセージが表示されます。基本プロセスが終了しました。コード=終了、ステータス=2/INVALIDARGUMENT
systemd
configuration
vsftpd
etc
vsftp

vsftpdサービスが開始されておらず、vsftpd.serviceメッセージが表示されます。基本プロセスが終了しました。コード=終了、ステータス=2/INVALIDARGUMENT

このFTPサーバーを実行するためにUbuntuを実行する仮想マシンを構成するためにAnsibleを使用していますがvsftpd、インストール後のログを確認すると次のような内容journalctl -u vsftpd.serviceが表示されます。 Nov 20 17:49:58 my-vm systemd[1]: Starting vsftpd FTP server... Nov 20 17:49:58 my-vm systemd[1]: Started vsftpd FTP server. Nov 20 17:50:06 my-vm systemd[1]: Stopping vsftpd FTP server... Nov 20 17:50:06 my-vm systemd[1]: Stopped vsftpd FTP server. Nov 20 17:50:06 my-vm systemd[1]: Starting vsftpd FTP server... Nov 20 17:50:06 my-vm systemd[1]: Started vsftpd FTP server. Nov 20 17:50:06 my-vm systemd[1]: vsftpd.service: Main process exited, code=exited, status=2/INVALIDARGUMENT Nov 20 17:50:06 my-vm systemd[1]: vsftpd.service: Failed with result 'exit-code'. 私が設定した設定にどのような問題があるのか​​わかりません。構成/etc/vsftpd.confは次のとおりです。 anonymous_enable=NO # disable anonymous login local_enable=YES # permit local logins write_enable=YES # enable FTP commands which change the filesystem local_umask=022 # value of umask for file creation for local users dirmessage_enable=YES # enable showing of messages when users first enter a new directory xferlog_enable=YES # a log file will be maintained detailing uploads and downloads connect_from_port_20=YES # use port 20 (ftp-data) on the server machine for PORT style connections xferlog_std_format=YES # keep standard log file format listen=NO # prevent vsftpd from running in standalone mode listen_ipv6=YES # THIS DOES NOT FIX THE FOLLWING: 'journalctl -u vsftpd.service' gives: 'vsftpd.service: Main process exited, code=exited, status=2/INVALIDARGUMENT' pam_service_name=vsftpd # name of the PAM service vsftpd will use userlist_enable=YES # enable vsftpd to load a list of usernames tcp_wrappers=YES # turn on tcp wrappers ls_recurse_enable=YES # allow to recursively inspect the file system (no problem with heavy I/O) chroot_local_user=YES # local users limited to their home directories after login (chroot jail) allow_writeable_chroot=YES # allow chroot jail for local users to be writable pasv_enable=YES # enable passive connections pasv_min_port=10000 # passive connections port range pasv_max_port=10100 # passive connections port range ssl_enable=YES # enable FTPS ssl_tlsv1=YES # only TLS (not old SSL standards) ssl_sslv2=NO # only TLS (not old SSL standards) ssl_sslv3=NO # only TLS (not old SSL standards) rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key FTPサーバーデーモンを正しく実行するにはどうすればよいですか? 設定ファイルに問題がありますか?

Admin

「systemctl start」はリバース依存デバイスを起動しませんが、「systemctl restart」は起動します。
systemd

「systemctl start」はリバース依存デバイスを起動しませんが、「systemctl restart」は起動します。

私はsystemdfw.serviceユニットファイルを持っており、これは次の要件ですnetworking.service。 # systemctl show networking -p Requires Requires=system.slice fw.service # networking.serviceそのactive状態で実行すると、systemctl stop fw数秒後にその状態が維持されsystemctl start fwます。ただし、状態で実行すると再起動します。networking.serviceinactive (dead)networking.serviceactivesystemctl restart fwnetworking.service これが予想される動作ですか?私の考えsystemctl restartには基本的にsystemctl stopギリギリな瞬間systemctl startなのでsystemctl start発売しなければならないと思いますnetworking.service。

Admin

e2fsckがマウントされたファイルシステムの出力を信頼できないことを示す場合、systemdはどのようにfsエラーからログメッセージを生成しますか?
systemd
fsck
dmesg

e2fsckがマウントされたファイルシステムの出力を信頼できないことを示す場合、systemdはどのようにfsエラーからログメッセージを生成しますか?

男e2fsckが言った。 マウントされたファイルシステムでe2fsckを実行することは通常安全ではありません。唯一の例外は、-c、-l、または-Lオプションなしで-nオプションを指定した場合です。ただし、これが安全であっても、ファイルシステムがマウントされている場合、e2fsckによって印刷された結果は無効です。 e2fsckがマウントされたファイルシステムを確認する必要があるかどうかを尋ねる場合、唯一の正しい答えは「いいえ」です。自分が何をしているのかを知っている専門家だけが、この質問に異なる方法で答えることを検討する必要があります。 ファイルシステムにエラーが発生していること(少なくともext4では)がわかりますjournalctl -k。表面上、Journalctlはdmesgユーティリティによって報告されたのと同じカーネルメッセージを受け取ります。 fsckは各ファイルシステムで異なる動作をしますが、通常は実際のfsログをチェックし、各inode(iirc)でいくつかの異なるエントリを見つけます。 man dmesgの読み込み中に、特別なブロックデバイス/ dev / kmsgと/ proc / kmsgファイルへの言及を見ました。cat /dev/kmsgメッセージを読むことができます。これはjournalctl -kデータを取得したソースと同じですか?これは何の関係ですかe2fsck -n?

Admin

ネットワークがsystemdに接続したら、.shファイルを介してrcloneサービスを開始します。
shell-script
systemd
services
rclone

ネットワークがsystemdに接続したら、.shファイルを介してrcloneサービスを開始します。

システムの起動/再起動時にネットワーク接続を受信するとすぐに、rcloneサービスがドライブをマウントできるようにします。 これまで端末を介してすべてを正しくインストールしました。デフォルトでは、実行するための単純な.shファイルを作成しました。 #!/bin/sh ! mountpoint -q /home/{user}/{location}/{location} || umount /home/{user}/{location}/{location} rclone mount {nameofservice}: /home/{user}/{location}/{location} --config /home/{user}/.config/rclone/rclone.conf 端末で実行すると、期待どおりに動作します。 systemdを使用してネットワーク接続を実装した後、オンラインチュートリアルに従って動作し、755 +x権限で次のファイルを作成しました。/etc/systemd/system/{nameof.service} [Unit] Description=Starts {nameof.service} rclone service on startup Wants=network-online.target After=network-online.target [Service] Type=simple User={user} Group={group} ExecStart=/home/{user}/{nameofsh}.sh TimeoutStartSec=5 RemainAfterExit=yes [Install] WantedBy=network-online.target 特定のユーザーとして実行するために必要です。このファイルを作成した後、私も次のことをしました。 systemctl daemon-reload systemctl enable {nameof.service} このチュートリアルでは、アクティベーションコマンドはシンボリックリンクの作成に関するメッセージを返すことを期待していましたが、理解していませんでした。新しい行にサイズを変更するだけですが、それは重要だとは思わない。 とにかく実行すると予想される結果が出ますが、systemctl restart {nameof.service}起動や再起動では結果が出ません。 この時点では、私が間違っているのかわからないので、助けてくれてありがとう。

Admin